Сильно типизированный @User.Identity

Я настраиваю IIdentity а также IPrincipal добавив еще несколько свойств в IIdentity,

Вы можете получить строго типизированный экземпляр @User.Identity для моего пользовательского класса? Без необходимости делать преобразования в актерском составе.

Я думал о чем-то вроде бритвы, настраивающей вид, но даже не знаю с чего начать.

2 ответа

Решение

Вы можете попробовать создать метод расширения на IPrincipal

public static class PrincipalExtensions
{
    public static MyIdentity GetMyIdentity (this IPrincipal principal)
    {
        return principal.Identity as MyIdentity;
    }
}

а затем получить вашу личность, позвонив @User.GetMyIdentity()

Вы можете создать новый базовый тип для ваших представлений и добавить к нему свойство или метод, который будет выполнять приведение. Таким образом, вы можете избежать этого все время в ваших взглядах.

Другие вопросы по тегам