小编Mr *_*Bog的帖子

ASP.NET MVC自定义IPrincipal注入

我正在使用ASP.NET MVC 1.0开发应用程序,我正在尝试将自定义IPrincipal对象注入HttpContext.Current.User对象.

使用传统的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;
                }
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

因此,使用此方法,我可以通过显式转换User对象来键入SiteUser来访问我的自定义IPrincipal.我实际上通过一个自定义类来实现这一点,所有的Pages都是继承自我的.

无论如何,我的问题是,使用ASP.NET MVC时,只要发出任何请求(因此对于JS文件,图像等)而导致应用程序死亡,Application_AuthenticateRequest似乎就会触发.

关于如何将我的自定义IPrincipal注入到ASP.NET MVC 1.0中的HttpContext.Current.User对象的任何帮助或建议将不胜感激.我确实在SO上看到了以下文章,但它似乎没有满足我想要实现的目标:ASP.NET MVC - 设置自定义IIdentity或IPrincipal …

asp.net-mvc iprincipal

10
推荐指数
1
解决办法
8154
查看次数

标签 统计

asp.net-mvc ×1

iprincipal ×1