我使用ASP.NET MVC 1.0上的应用程序的工作,我试图给HttpContext.Current.User对象注入一个自定义的IPrincipal对象。
与传统的WebForms应用程序,我已经使用了Application_AuthenticateRequest事件要做到这一点,如下所示。
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
// Get Forms Identity From Current User
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
// Get Forms Ticket From Identity object
FormsAuthenticationTicket ticket = id.Ticket;
// Create a new Generic Principal Instance and assign to Current User
SiteUser siteUser = new SiteUser(Convert.ToInt32(id.Name));
HttpContext.Current.User = siteUser;
}
}
}
}
因此,使用此我能够明确地铸造用户对象键入SiteUser访问我的自定义的IPrincipal。 我实际上是由具有所有页面都从这样做的封面,我下继承的自定义类这样做。
总之,我的问题是,与ASP.NET MVC的Application_AuthenticateRequest似乎火,只要任何请求时(因此对于JS文件,图像等),这会导致应用程序死掉。
任何帮助或建议,我怎么能去注射我自定义的IPrincipal到ASP.NET MVC 1.0中HttpContext.Current.User对象将不胜感激。 我没有看到,因此下面的帖子,但它似乎并没有满足我想要实现: ASP.NET MVC -设置自定义的IIdentity或IPrincipal的
TIA。