Asp.net 在Sitecore 6.2中伪造用户角色
SDN中的文档似乎正好满足了我的需要。我有几个“角色”,我可以通过存储过程调用访问它们,这些调用我不控制,只读,通过CRM我没有直接访问权限Asp.net 在Sitecore 6.2中伪造用户角色,asp.net,roles,sitecore,Asp.net,Roles,Sitecore,SDN中的文档似乎正好满足了我的需要。我有几个“角色”,我可以通过存储过程调用访问它们,这些调用我不控制,只读,通过CRM我没有直接访问权限 不幸的是,我无法通过其当前名称找到AddRole方法,甚至找不到UserItem类。Sitecore 6.2中是否存在此功能?如果是,它在哪里?这对于SDN(SDN.sitecore.net)来说是个好问题。 对于虚拟用户,请查看AuthenticationManager类。要管理用户和角色,请查看Sitecore.Security.Accounts命名空
不幸的是,我无法通过其当前名称找到AddRole方法,甚至找不到UserItem类。Sitecore 6.2中是否存在此功能?如果是,它在哪里?这对于SDN(SDN.sitecore.net)来说是个好问题。
对于虚拟用户,请查看AuthenticationManager类。要管理用户和角色,请查看Sitecore.Security.Accounts命名空间。您所引用的代码似乎是针对早期版本的Sitecore,我猜是5.3.X。安全模型已从6.0开始更改,以利用ASP.NET标准安全模型 为了从另一个源向Sitecore live添加额外的角色,您应该实现额外的角色提供程序,将其添加到web.config并启用交换机。将给你一个很好的概述。请记住一点:Sitecore安全性(从6.0开始)在很大程度上依赖于ASP.NET安全性,因此ASP.NET中的可能性应该在Sitecore中实现 如果有一天您可以直接访问CRM,您应该能够使用标准从CRM获取联系人和组
希望这有帮助。不用检查,我很确定您的SDN参考仅适用于Sitecore 5.x。整个安全模型是在6.x中重做的,没有向后兼容性 但是,如果我理解您想要正确地做什么,那么您的任务相当简单。您需要按照MSDN()上的指示,100%按照标准ASP.NET创建RoleProvider 接下来,将其挂接到Sitecore解决方案中,并将Sitecore配置为“切换器”模式
差不多就是这样。您的角色现在将与Sitecore中的任何和所有其他角色一样出现,并且可以根据您的需要分配给用户和/或角色。虽然这些其他解决方案很好,但它们无法回答问题 虚拟用户功能在Sitecore 6中仍然有效,但已转移到AuthenticationManager类。我自己发现了它,就在我即将放弃寻找的时候,因为它确实解决了其他方法中的一些限制 这是你最好的参考点,你会在中找到一个很好的例子 那么,这种方法如何有用呢 当您使用多个提供程序时,它非常有用,尤其是在您执行高级Active Directory连接类型的工作时 例如,我们有这样一种情况:我们根据2个不同的活动目录对用户和角色进行身份验证,但我们希望在用户登录后允许将每个目录中的角色应用于用户。您可能认为您可以将角色从一个广告分配给针对另一个广告进行身份验证的用户,但当然不能。。我们无法直接将“ad”域角色添加到“ad2”用户,因此我们将动态地将相应角色从Sitecore域添加到在Sitecore域下创建的虚拟用户。他们现在可以访问由“ad”域和“ad2”域驱动的功能 我有一个可爱的小visio图表,用漂亮的颜色解释了整个事情,唉,我不能附上。我刚才提到我在SDN上找到了文档,并链接到了它,所以建议我尝试SDN并没有真正帮助我。
<roleManager defaultProvider="switcher" enabled="true">
<providers>
<clear/>
<add name="sitecore" type="Sitecore.Security.SitecoreRoleProvider, Sitecore.Kernel" realProviderName="sql" raiseEvents="true"/>
<add name="sql" type="System.Web.Security.SqlRoleProvider" connectionStringName="core" applicationName="sitecore"/>
<add name="your" type="RoleProvider, Here" applicationName="sitecore"/>
<add name="switcher" type="Sitecore.Security.SwitchingRoleProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/roleManager"/>
</providers>