gpt4 book ai didi

asp.net-web-api - Web API 和 .NET 4.5 : Claims and rights

转载 作者:行者123 更新时间:2023-12-01 05:30:56 25 4
gpt4 key购买 nike

是否有使用权利管理声明的最佳实践?

我正在使用新的 .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", "")
}

我添加了没有值(value)的权利要求。
后来我检查了 存在的权利。不需要值(如真/假) - 如果它存在,则其隐含的“ ”真 '。

有没有更好的方法来做到这一点?

最佳答案

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

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

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

关于asp.net-web-api - Web API 和 .NET 4.5 : Claims and rights,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11223589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com