我正在執行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()總是返回一個字符串?
既然你認爲這很奇怪,你必須記住一些其他類型,你必須認爲它更符合邏輯。小心分享它? –
不僅僅是思考其他類型,它只是我試圖避免魔法字符串,如果我必須使用它,我想知道爲什麼。 –