我正在实施IPrincipal
界面,role
参数是String
的事实听起来很奇怪。我想有充分的理由,但我想知道原因。
答案 0 :(得分:11)
这是因为roleprovider是身份验证的可插入部分,因此您可以自行推送(双关语)并为用户的角色成员资格提供结果。
如果您认为基于角色的身份验证机制需要具有任意数量的命名角色,那么如果这基于某些类型或硬编码系统,则这不会那么容易。因此,使用字符串来匹配以某种方式存储的角色实际上可以正常工作。
P.S。 asp.net成员资格和身份验证系统整体上是一团糟,即将使用owin模式在即将到来的MVC5和Asp.Net更新中获得重大升级。
答案 1 :(得分:0)
在我的脑海中,确定跨API(例如Windows或Novell)的角色的实现是完全不同的。但是,一个共同点是有组名,而string
是正确的类型。
请注意,IsInRole
可以有许多不同的实现。其中一些查询Active Directory。