我忙着写我自己的自定义属性我叫MyAuthorizeAttribute操作方法,我还在忙着写代码,这里是我的部分代码:如何延长AuthorizeAttribute并检查用户的角色
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
public new Role Roles;
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (Roles != 0) // Did it this way to see what the value of Roles was
return;
// Here I am going to get a list of user roles
// I'm doing my own database calls
filterContext.Result = new HttpUnauthorizedResult();
}
}
这里我的角色枚举:
public enum Role
{
Administrator = 1,
SuperAdministrator = 2
}
我的操作方法:
原因为什么我没有使用角色=“管理员,超级管理员”是因为角色是硬编码的。如果角色名称发生变化,我不希望有100个地方可以更改。
鉴于我的方法,当它到达if(Roles!= 0)时,角色总值为3,我将如何检查这两个角色是否在特定用户的用户角色列表中?
我在这里正确吗?如果不是,我会如何执行此操作?它不一定是我做它的方式。
是由以下任何两个答案来解决问题了吗?如果是,请接受答案。它会帮助像我一样有同样问题的其他人。 – 2013-11-21 12:49:35