加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api – Web API和.NET 4.5:声明和权利

发布时间:2020-12-16 09:37:05 所属栏目:asp.Net 来源:网络整理
导读:是否有使用权利管理索赔的最佳做法? 我正在使用新的.net 4.5和新的声明类. 目前我做的是这样的: new ClaimsIdentity(new ListClaim { new Claim("Username",user.UserName),new Claim("UserNumber",user.UserNumber.ToString()),new Claim("Creation_Right
是否有使用权利管理索赔的最佳做法?

我正在使用新的.net 4.5和新的声明类.
目前我做的是这样的:

new ClaimsIdentity(new List<Claim>
                    {
                        new Claim("Username",user.UserName),new Claim("UserNumber",user.UserNumber.ToString()),new Claim("Creation_Right",""),new Claim("Edit_Right","")
                    }

我添加没有价值的权利主张.
后来我检查是否存在权利.不需要值(如真/假) – 如果存在,则隐含“真”.

有没有更好的方法呢?

解决方法

也许.看起来您正在做的是将身份验证和授权合并在一起,在身份验证时做出访问策略决策.

您还可以选择将授权组件与身份验证组件分开.声明表示可用于做出授权决定的一组用户信息.也就是说,您的身份验证步骤会产生一组声明,并且每当您的用户尝试访问某些内容时,这些声明都会被提供给授权组件,该组件会做出决定.

这提供了一些灵活性,因为您的授权策略可以独立于您的索赔发布系统进行更改和发展.例如,您可以发出将某人标识为管理员的角色声明,并且您还可以发出一个身份验证方法声明,该声明指定用户如何使用智能卡或用户名和密码登录.这使您可以定义访问策略,只需要管理员角色即可访问某些资源,而其他更敏感的资源则需要管理员角色并使用强大的身份验证机制.它还意味着您可以根据上下文在多个不同的访问策略之间切换.您的在线威士忌商店可能会在美国使用ageOver21声明,但您网站的加拿大版本需要超过18或超过19个声明.将authZ与authN分开可以实现这种灵活性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读