2010-06-17 2 views
2

Документ Faking User Roles в SDN, похоже, дает именно то, что мне нужно. У меня есть несколько «ролей», к которым у меня есть доступ через вызовы хранимых процедур, которые я не контролирую, только для чтения, через CRM, к которому у меня нет прямого доступа.Подделка ролей пользователей в Sitecore 6.2

К сожалению, я не могу найти метод AddRole или даже класс UserItem по его текущему имени. Эта функциональность существует в Sitecore 6.2? Если да, то где это?

ответ

3

Кажется, что код, на который вы ссылаетесь, для предыдущих версий Sitecore, я думаю, 5.3.X. Модель безопасности изменилась с версии 6.0, чтобы воспользоваться стандартной моделью безопасности ASP.NET.

Чтобы вывести дополнительные роли в Sitecore из другого источника, вы должны реализовать дополнительный поставщик роли, добавить его в web.config и включить переключатели. This article даст вам хороший обзор. Просто помните об общем: безопасность Sitecore (начиная с версии 6.0) очень сильно зависит от безопасности ASP.NET, поэтому возможно, что в ASP.NET должно быть возможно в Sitecore.

Если в один прекрасный день вы получите прямой доступ к CRM, вы сможете использовать стандарт Sitecore CRM security provider для получения контактов и групп из CRM.

Надеюсь, что это поможет.

-1

Это хороший вопрос для SDN (sdn.sitecore.net). Для виртуальных пользователей просмотрите класс AuthenticationManager. Для управления пользователями и ролями рассмотрите пространство имен Sitecore.Security.Accounts.

+0

Я только что упомянул, что * нашел * документ на SDN и связался с ним, поэтому рекомендация о том, что я пытаюсь выполнить SDN, на самом деле мне не помогает. –

2

Без проверки, я уверен, что ссылка на SDN применима только к Sitecore 5.x. Вся модель безопасности была переделана в версии 6.x, и нет обратной совместимости.

Если я понимаю, что вы хотите сделать правильно, ваша задача довольно проста. Вам необходимо создать RoleProvider, 100% на стандартный ASP.NET, как указано на MSDN (http://msdn.microsoft.com/en-us/library/aa478950.aspx).

Затем вы подключите это решение к своему Sitecore и настройте Sitecore в режим «Switcher».

<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, и могут быть назначены пользователям и/или ролям в любых целях, которые вам нужны.

2

Хотя эти другие решения хороши, они не отвечают на вопрос.

Функциональность виртуального пользователя по-прежнему сохраняется и сохраняется в Sitecore 6, но она перешла в класс AuthenticationManager. Я нашел это сам, так как я собирался отказаться от поиска, потому что он затрагивает ряд ограничений в других методах.

Вот ваш лучший ориентир, вы найдете хороший пример в here.

Итак, как этот метод полезен?

Это полезно, если вы используете несколько поставщиков, особенно когда вы делаете расширенный тип подключения к каталогу Active Directory.

Например, у нас есть ситуация, когда мы аутентифицируем пользователей и роли против двух разных активных каталогов, но мы хотим разрешить им использовать роли от каждого пользователя после входа в систему. Можно подумать, что вы можете просто назначить роли от одного AD до пользователя, прошедшего проверку подлинности против другого AD, но, конечно же, не .. Мы не можем напрямую добавлять роли домена «ad» к пользователю «ad2», поэтому мы динамически добавляем соответствующие роли из домена Sitecore в виртуальный пользователь, созданный в домене sitecore. Теперь у них есть доступ к функциональности, которая вызывается из домена «ad» и домена «ad2».

У меня есть симпатичная маленькая диаграмма visio, которая объясняет все это красивыми цветами, увы, я не могу прикрепить.

Смежные вопросы