asp.net – 没有角色的声明?
我正在尝试了解ASP.NET身份验证和授权机制.我理解什么是索赔&什么是角色.在几乎所有相关的博文中,或者在这里提出问题时,建议使用声明并避免角色.我在这一点上很困惑.如何使用没有角色的声明? (我通常在用户注册后为其分配角色.)
任何帮助表示赞赏. 谢谢 解决方法
角色也是主张,声称更为一般.
我只能推测,因为你没有显示确切的链接,它不完全是“对角色的主张”. 相反,“使用基于声明的安全模型而不是基于角色的安全模型”.这个很容易解释,因为角色也是声明,使用你有角色的声明,但你也可能有其他声明. 从技术上讲,如果您创建一个ClaimsPrincipal并添加Role声明,ASP.NET将正确识别您期望的角色 – WebForms授权,MVC授权过滤器和其他基于角色的东西照常工作. 如果您需要一些技术细节,请参阅我的博客文章,其中显示了如何轻松地从旧的基于角色的表单身份验证切换到新的基于声明的身份验证. http://www.wiktorzychla.com/2014/11/forms-authentication-revisited-for-net.html 特别是,您只需添加此类角色声明 var identity = new ClaimsIdentity( "custom" ); identity.AddClaim( new Claim( ClaimTypes.Name,txtLogin.Text ) ); identity.AddClaim( new Claim( ClaimTypes.Role,"admin" ) ); var principal = new ClaimsPrincipal( identity ); // write the principal to cookie 但是,声称给你的是能够根据“用户年龄超过18岁”或“用户来自法国,德国或西班牙”等任意声明进行授权.这种任意陈述不一定映射到“角色”,而是完美的主张. 您可以使用自定义声明授权管理器执行此授权,此处为示例 https://msdn.microsoft.com/en-us/library/system.security.claims.claimsauthorizationmanager(v=vs.110).aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 有没有比升级到Visual Studio 2010 Ultimate更便
- asp.net – 在web.config中指定相对路径
- asp.net-mvc-3 – 使用参数清理URL以获取MVC索引方法
- asp.net-mvc – 启用relaxedUrlToFileSystemMapping以允许以
- 在Entity Framework中使用存储过程(三):逻辑删除的实现与
- asp.net – oauth令牌共享多个应用程序
- asp.net-mvc-3 – _AppStart正在执行时无法创建存储范围
- 你不能没有哪些第三方ASP.NET控件或库?
- asp.net-mvc-4 – 捆绑与缩小,哪一个是最好的
- 在ASP.Net中访问HTML元素
- asp.net-ajax – system.web不包含脚本的定义
- asp.net-mvc – 什么是AsyncManager.Outstanding
- 10.1.翻译系列:EF 6中的实体映射【EF 6 Code-Fi
- asp.net – 只能将一个ScriptManager实例添加到页
- asp.net-mvc – ASP.Net MVC中的分页和路由
- asp.net-mvc – JQuery中的ViewBag
- asp.net-mvc – 验证在部分视图中不起作用
- asp.net – Fulltext Query String的全文查询参数
- asp.net – 实体框架5在保存时停止运行T4模板文件
- asp.net – 无法加载文件或程序集“System.Web.M