我想保护控制器操作,以便只有具有“管理员”角色的用户才能进入。
我根本不使用角色/成员资格提供程序,一切都是自定义的。
到目前为止我做了这个:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (!isAuthorized)
return false;
string username = httpContext.User.Identity.Name;
UserRepository repo = new UserRepository();
return repo.IsUserInRole(username, "Admin");
}
}
请注意,我在这里硬编码了“Admin”。
我希望这是动态的。
现在这项工作:
[CustomAuthorize]
public ActionResult RestrictedArea()...
但我想要这样的东西:
[CustomAuthorize(Roles = "Admin")]
public ActionResult RestrictedArea()