MVC3额外角色属性

时间:2012-02-22 09:19:13

标签: asp.net asp.net-mvc-3

我正在创建一个管理员可以添加教师和学生的网站,管理员应该能够指定教师在特定位置时可以执行的操作。

是否可以扩展Authorize属性以检查特定用户所在的位置?例如[授权(角色=“管理员”,位置=“ICT”)]?

如果是这样,我该怎么做呢?

提前致谢。

2 个答案:

答案 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