自定义授权mvc3错误

时间:2011-08-05 13:59:11

标签: asp.net-mvc-3

我正在尝试在mvc 3中自定义授权。在家庭控制器中,我设置的角色是......

Session["role"] = "Admin";

我在

收到错误
SiteRoles role = (SiteRoles)httpContext.Session["role"]; 

说明指定演员表无效。

我不知道发生了什么。

protected override bool AuthorizeCore(HttpContextBase httpContext)
{
    if (httpContext == null)
        throw new ArgumentNullException("httpContext");

    string[] users = Users.Split(',');

    if (!httpContext.User.Identity.IsAuthenticated)
        return false;

    string role = (string)httpContext.Session["role"]; 

    if (Roles != 0 && ((Roles & role) != role))
        return false;

    return true;
}

1 个答案:

答案 0 :(得分:0)

您正在会话中设置一个字符串,因此在阅读时应使用字符串:

string role = (string)httpContext.Session["role"]; 

或者,如果您想设置一些自定义类型:

Session["role"] = SiteRoles.Admin;

然后你将能够:

SiteRoles role = (SiteRoles)httpContext.Session["role"];