我正在执行IPrincipal
接口,并且role
参数是String
这一事实听起来很奇怪。我想这有很好的理由,但我想知道为什么。为什么IPrincipal.IsInRole参数是一个字符串?
0
A
回答
11
这是因为roleprovider是身份验证的可插入部分,因此您可以推出自己的(双关语意图)并提供用户角色成员身份的结果。
如果您认为基于角色的认证机制需要具有任意数量的命名角色,那么如果这是基于某种类型或硬编码的系统,那么这将不那么容易。所以使用一个字符串来匹配存储在某种方式下的角色实际上是可行的。
P.S. asp.net成员资格和认证系统总体上是一团糟,并且即将在即将到来的MVC5和Asp.Net更新中使用owin模式进行重大升级。
+2
+1只是双关语:D(也是一个很好的答案) – Mansfield
0
除了我的头顶,确定跨API的角色(例如Windows或Novell)的实现方式有很大不同。然而,一个共同点是有组名,并且string
是正确的类型。
请参阅引擎盖下的IsInRole
可以有许多不同的实现。其中一些查询Active Directory。
相关问题
- 1. 字符串是一个类为什么
- 2. 为什么一个字符串总是“大于”一个数字?
- 3. 为什么这个get参数不等于一个字符串?
- 4. 这个数字为什么是一个字符串?
- 5. 为什么这个字符串值是一个数字?
- 6. 为什么perl的unpack()认为第二个参数是一个字符串?
- 7. 什么是“N”字符串参数
- 8. 为什么字符串参数股与
- 9. app.post的第一个字符串参数是做什么的?
- 10. Javascript:为什么一个数字被视为一个字符串?
- 11. 为什么只是putchar字符串的第一个字符?
- 12. 什么是追加一个字符串
- 13. 为什么一个类是一个字符串的实例?
- 14. 为什么AppDomainSetup.ShadowCopyFiles一个字符串?
- 15. 为什么`+ [[]] + [[]]`返回一个字符串?
- 16. 为什么字符串[]被识别为只是一个字符串
- 17. 为一个字符串参数
- 18. 为什么端口是一个字符串而不是一个整数?
- 19. symfony2服务为什么注入参数是字符串?
- 20. 字符串数组加字符串不是错误,为什么?
- 21. mysql:为什么比较一个'字符串'为0是真的?
- 22. 为什么string.format()的结果是一个字符串,即使是数字?
- 23. 为什么字符串化JSON是一个有效的字符串?
- 24. 为什么不是File.new符号的参数而不是字符串?
- 25. 为什么R返回一个整数而不是一个字符串
- 26. 什么时候是一个event.target.value不是一个字符串?
- 27. 这个__repr__函数为什么不返回一个字符串?
- 28. 什么是“字符串数学”,为什么它不好?
- 29. 为什么输出不是一个列表,int或字符串?
- 30. 为什么input()总是返回一个字符串?
既然你认为这很奇怪,你必须记住一些其他类型,你必须认为它更符合逻辑。小心分享它? –
不仅仅是思考其他类型,它只是我试图避免魔法字符串,如果我必须使用它,我想知道为什么。 –