我正在尝试在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;
}
答案 0 :(得分:0)
您正在会话中设置一个字符串,因此在阅读时应使用字符串:
string role = (string)httpContext.Session["role"];
或者,如果您想设置一些自定义类型:
Session["role"] = SiteRoles.Admin;
然后你将能够:
SiteRoles role = (SiteRoles)httpContext.Session["role"];