Подделка пользовательских ролей в Sitecore 6.2 - PullRequest
2 голосов
/ 17 июня 2010

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

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

Ответы [ 4 ]

3 голосов
/ 18 июня 2010

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

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

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

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

2 голосов
/ 25 марта 2011

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

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

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

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

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

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

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

2 голосов
/ 18 июня 2010

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

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

Далее, вы подключаете его к своему решению Sitecore и настраиваете Sitecore в режим «переключатель».

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

0 голосов
/ 17 июня 2010

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

...