ASP.Net MVC Лучшие практики для хранения CustomIdentity - PullRequest
2 голосов
/ 14 января 2012

Я использую ASP.NET MVC 3 с Entity Framework 4. Когда пользователь входит в систему, я хотел бы сохранить некоторую информацию из базы данных, такую ​​как ID, Имя и т. Д. Поэтому я создал свой собственный CustomIdentity / CustomPrincipial, но я не хочу приводить каждый раз, поэтому я создаю BaseController, который приводит Identity:

public class BaseController : Controller
{
    public CustomIdentity CustomIdentity { get { return (CustomIdentity)User.Identity; } }
}

и все мои другие контроллеры работают с BaseController. Но я не думаю, что это хорошая практика. Есть ли лучший способ?

1 Ответ

1 голос
/ 14 января 2012

Я бы использовал метод расширения, чтобы избежать дополнительного наследования.

public static CustomerIdentity Customizes(this IIdentity identity)
{
    return (CustomIdentity) identity;
}

Это немного более обнаружимо, и нет никакой путаницы относительно того, следует ли использовать User.Identity или CustomerIdentity.когда вам нужно удостоверение

var identity = User.Identity;

и когда вам нужно дополнительное свойство

var identity = User.Identity.Custmoized();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...