& # 39; System.Web.HttpApplication.User& # 39;是属性'But用作&

本文关键字:用作 属性 But HttpApplication System Web User | 更新日期: 2023-09-27 17:50:00

我是MVC3的新手,我正在尝试实现客户用户和角色身份验证。我能够使用我的自定义数据库验证用户,但现在我想在同一表中使用我的自定义角色。我按照下面这个链接的说明做了这么多:

MVC自定义角色和验证

教程让我把这段代码放到全局代码中。asax文件。

protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e)
{
    if (FormsAuthentication.CookiesSupported == true)
    {
        if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
        {
            try
            {
                //let us take out the username now
                string roles = string.Empty;
                string username = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name;
                using (RecipeEntities entities = new RecipeEntities())
                {
                   **-->> User user = entities.KeyFobUsers.Single(u => u.username == username);
                    roles = user.AccessLevel.Trim();
                }
                //let us extract the roles from our own custom cookie
                //Let us set the Pricipal with our user specific details
                e.User = new System.Security.Principal.GenericPrincipal(new System.Security.Principal.GenericIdentity(username, "Forms"), roles.Split(';'));
            }
            catch
            {
                //something went wrong
            }
        }
    }
}

目前在上面的脚本MVC有"用户"下划线说明'System.Web.HttpApplication.User' is a 'property' but is used like a 'type'

我用谷歌搜索了一下,并尝试了我在Stack上找到的链接,但没有什么是针对我的问题的。我只是想把角色从我的自定义数据库表到MVC的角色,这样我就可以在某些窗口上使用权限。

有没有人有什么建议或者想把我推向正确的方向?

& # 39; System.Web.HttpApplication.User& # 39;是属性'But用作&

编译器与HttpApplication的User属性和User类冲突。您可以使用var来避免冲突:

var user = entities.KeyFobUsers.Single(u => u.username == username);

或者用它所在的名称空间完全限定User类:

MyNamespace.User user = ...