asp.net-mvc-3 – 从自定义授权属性访问角色
发布时间:2020-09-21 08:44:53  所属栏目:asp.Net  来源:互联网 
            导读:我正在创建自己的自定义authorize属性,覆盖AuthorizeCore方法,并想知道是否可以访问已传递到authorize属性标记的角色. 所以,例如,如果我有这个: [CustomAuthorize(Roles = Administrator, Sales, Entry)] 是否可以从这里访问这些: protected override bool
                
                
                
            | 
                         我正在创建自己的自定义authorize属性,覆盖AuthorizeCore方法,并想知道是否可以访问已传递到authorize属性标记的角色. 所以,例如,如果我有这个: [CustomAuthorize(Roles = "Administrator,Sales,Entry")] 是否可以从这里访问这些: protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
    } 
 然后我可以拆分字符串并创建一个数组. 解决方法你可以这个.Roles这是一个你需要拆分的字符串.源代码是免费提供的. 默认的AuthorizeCore实现: protected virtual bool AuthorizeCore(HttpContextBase httpContext) {
    if (httpContext == null) {
        throw new ArgumentNullException("httpContext");
    }
    IPrincipal user = httpContext.User;
    if (!user.Identity.IsAuthenticated) {
        return false;
    }
    if (_usersSplit.Length > 0 && !_usersSplit.Contains(user.Identity.Name,StringComparer.OrdinalIgnoreCase)) {
        return false;
    }
    if (_rolesSplit.Length > 0 && !_rolesSplit.Any(user.IsInRole)) {
        return false;
    }
    return true;
} 
 它们有一个内部拆分功能,如下所示: internal static string[] SplitString(string original) {
    if (String.IsNullOrEmpty(original)) {
        return new string[0];
    }
    var split = from piece in original.Split(',')
                let trimmed = piece.Trim()
                where !String.IsNullOrEmpty(trimmed)
                select trimmed;
    return split.ToArray();
}                        (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- ASP.Net MVC cookies – 防篡改?
 - asp.net – 如何添加.aspx页面到现有的MVC 4项目?
 - asp.net – 如何序列化LINQ-to-SQL惰性列表
 - 在ASP.NET 2.0中的特定时间清除缓存
 - asp.net-mvc – ASP.NET MVC:处理取消按钮的正确方法
 - ASP.NET MVC API 接口验证的示例代码
 - asp.net-mvc-3 – 在MVC Razor View中使用If语句
 - Asp.net下使用Jquery Ajax传送和接收DataTable的代码
 - asp.net-mvc – 图像URL中的符号MVC导致一个潜在危险的Requ
 - ASP.NET MVC4 Razor模板简易分页效果
 
