我正在从集成的/ Windows身份验证系统(我在web.config的授权部分使用windows组,web.sitemap以及使用user.identity.name获取各种每用户功能)转移到SSO解决方案,通过http标头提供经过身份验证的详细信息。
我创建了一个非常简单的自定义RoleProvider(重写IsUserInRole和GetRolesForUser),它非常适用于web.config的“allow roles”部分和web.sitemap的roles部分。
我想对授权的'用户'部分做同样的事情。我将如何做到这一点?是通过覆盖不同的提供商吗?它是否也会影响user.identity.name?
返回的内容感谢您指出我正确的方向:)
编辑 - 杰伊。
请注意,这可能是一个hacky和缺乏经验的修复,但它符合我的目的。在http://msdn.microsoft.com/en-us/library/8fw7xh74(v=vs.100).aspx之后,您可以创建一个包含所有必需函数定义的类,并根据需要返回false / empty字符串数组。
我实现的唯一功能是IsUserInRole和GetRolesForUser。后者只是挂钩到Request.ServerVariables来检查适当的HTTP头,并根据需要将它们格式化为String数组。 IsUserInRole只是将提供的字符串与GetRolesForUser返回的字符串数组进行匹配。
之后,我刚刚在web.config
中引用了上述内容<roleManager defaultProvider="myroleprov" enabled="true">
<providers>
<clear/>
<add name="myroleprov" type="myApp.CustomProviders.myroleprov" applicationName="myApp"/>
</providers>
</roleManager>
我认为那是关于它的?希望它有所帮助。
答案 0 :(得分:0)