我正在创建一个管理员可以添加教师和学生的网站,管理员应该能够指定教师在特定位置时可以执行的操作。
是否可以扩展Authorize属性以检查特定用户所在的位置?例如[授权(角色=“管理员”,位置=“ICT”)]?
如果是这样,我该怎么做呢?
提前致谢。
答案 0 :(得分:3)
如果是这样,我该怎么做呢?
通过编写自定义授权属性:
public class MyAuthorizeAttribute : AuthorizeAttribute
{
public string Location { get; set; }
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
var result = base.AuthorizeCore(httpContext);
if (!result)
{
return false;
}
// At this stage we know that the currently logged in user
// is authorized. Now you could use the Location property
// to perform additional custom authorization checks and
// return true or false from here
string user = httpContext.User.Identity.Name;
...
}
}
然后:
[MyAuthorize(Roles = "Administrator", Location = "ICT")]
答案 1 :(得分:0)
您可以创建自己的自定义授权属性。 观看视频asp-net-mvc3-custom-membership-authorizeattribute-tutorial