我正在实现IPrincipal
接口,而role
参数String
对我来说听起来很奇怪。我想这是有充分理由的,但我想知道为什么。
问问题
423 次
2 回答
11
这是因为 roleprovider 是身份验证的可插入部分,因此您可以滚动自己的(双关语)并为用户的角色成员资格提供结果。
如果您想象基于角色的身份验证机制需要具有任意数量的命名角色,那么如果这是基于某些类型化或硬编码的系统,这将不是那么容易。因此,使用字符串匹配以某种方式存储的角色实际上可以正常工作。
PS asp.net 会员和身份验证系统总体上是一团糟,即将在即将使用 owin 模式的 MVC5 和 Asp.Net 更新中进行重大升级。
于 2013-07-15T12:10:55.093 回答
0
在我看来,跨 API(例如 Windows 或 Novell)确定角色的实现是完全不同的。但是,一个共同点是有组名,而 astring
是正确的类型。
看,在引擎盖下,IsInRole
可以有许多不同的实现。其中一些查询 Active Directory。
于 2013-07-15T12:08:43.673 回答