Мне было интересно, как лучше заменить genericPrincipal на мой собственный CustomGenericPrincipal.
На данный момент у меня есть что-то подобное, но я не уверен, что это правильно.
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
var identity = new CustomIdentity(authTicket);
var principal = new CustomPrincipal(identity);
Context.User = principal;
}
else
{
//Todo: check if this is correct
var genericIdentity = new CustomGenericIdentity();
Context.User = new CustomPrincipal(genericIdentity);
}
}
Мне нужно заменить его, потому что мне нужен Принципал, который реализует мой интерфейс ICustomPrincipal, потому что я делаю следующее с Ninject:
Bind<ICustomPrincipal>().ToMethod(x => (ICustomPrincipal)HttpContext.Current.User)
.InRequestScope();
Так, каков лучший способ заменить GenericPrincipal?
Заранее спасибо,
Pickels