代码之家  ›  专栏  ›  技术社区  ›  Jesse Millikan

在Sitecore 6.2中伪造用户角色

  •  2
  • Jesse Millikan  · 技术社区  · 14 年前

    这个 Faking User Roles SDN中的文档似乎正是我所需要的。我有几个“角色”,我可以通过我不控制的存储过程调用来访问,只读的,通过我没有直接访问权的CRM。

    4 回复  |  直到 14 年前
        1
  •  3
  •   Yan Sklyarenko    14 年前

    This article 会给你一个很好的概述。请记住一点:Sitecore安全性(从6.0开始)非常依赖于ASP.NET安全性,因此在ASP.NET中可能实现的应该是在Sitecore中可能实现的。

    如果有一天你可以直接访问CRM,你应该可以使用标准 Sitecore CRM security provider 从CRM获取联系人和组。

    希望这有帮助。

        2
  •  2
  •   Mark Cassidy    14 年前

    如果我理解你想要做的正确的话,你的任务是相当简单的。您需要按照MSDN上的指示,100%按照标准ASP.NET创建RoleProvider( http://msdn.microsoft.com/en-us/library/aa478950.aspx ).

    <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>
    

    差不多就是这样。现在,您的角色将与Sitecore中的任何和所有其他角色一样出现,并且可以根据您的需要分配给用户和/或角色。

        3
  •  2
  •   Bartłomiej Mucha    11 年前

    尽管其他解决方案很好,但它们并不能回答问题。

    虚拟用户功能在Sitecore 6中仍然有效,但它已转移到AuthenticationManager类。就在我准备放弃寻找的时候,我自己发现了它,因为它确实解决了其他方法中的一些限制。

    这是你最好的参考点,你会发现一个很好的例子 here .

    它在使用多个提供者时非常有用,尤其是在执行高级ActiveDirectory连接类型的工作时。

    例如,我们有这样一种情况:我们根据两个不同的活动目录对用户和角色进行身份验证,但我们希望在用户登录后允许将每个目录中的角色应用于用户。您可能认为您可以将角色从一个广告分配给针对另一个广告进行身份验证的用户,但当然不能。。我们不能直接将“ad”域角色添加到“ad2”用户,因此我们会将相应的角色从Sitecore域动态添加到在Sitecore域下创建的虚拟用户。他们现在可以访问由“ad”域和“ad2”域驱动的功能。

    我有一个可爱的小visio图表,用漂亮的颜色解释了整个事情,唉,我不能附加。

        4
  •  -1
  •   seth    14 年前

    这对于SDN(SDN.sitecore.net)来说是个好问题。