2014-11-11 2 views
2

Я создаю приложение внутри Sitecore, и я хочу, чтобы он был доступен для пользователей по прямому URL. Я хочу, чтобы аутентификация выполнялась против LDAP. Я попытался перейти непосредственно к приложению и позволить ему перенаправить на страницу автоматического входа и перенаправить меня в приложение, но он этого не сделал. Вместо этого он взял меня на страницу входа в Sitecore.Sitecore с LDAP - аутентифицировать программно

Мне интересно, можно ли написать код для автоматической аутентификации пользователя LDAP и перенаправления на страницу приложения. Я хочу, чтобы пользователь никогда не видел страницу входа в систему или рабочий стол Sitecore или любой экран Sitecore, отличный от этого приложения.

Благодаря

ответ

3

Мы достигли чего-то подобного, объединив модуль AD с некоторым пользовательским кодом в Global.asax. Ниже приведены несколько строк, которые могут быть полезны. Вам, скорее всего, понадобится куча логики, чтобы проверить, был ли пользователь уже зарегистрирован, и получают ли они доступ к пути, для которого вы хотите автозарегистрироваться.

ПРИМЕЧАНИЕ:: Убедитесь, что в IIS включена проверка подлинности Windows.

protected void Session_Start(object sender, EventArgs e){ 
     // The user from Windows Authentication in IIS 
     var user = Context.Request.ServerVariables["LOGON_USER"]; 
     //Log the user in 
     bool success = Sitecore.Security.Authentication.AuthenticationManager.Provider.Login(user, false); 

} 

Вы заметите, что предоставленный мной образец предоставляется непосредственно поставщику. Вы также можете вызвать Login в классе AuthenticationManager, а также выполнить некоторую другую работу с кешем. В моем случае я пытался обойти это.

UPDATE (2017-06-29): В новых версиях Sitecore не рекомендуется, чтобы внести изменения в Global.asax. К сожалению, в Sitecore нет эквивалентного конвейера. Вы можете попытаться использовать httpRequestBegin (где процессор UserResolver) или httpRequestProcessed, но они будут срабатывать при каждом отдельном запросе.

Один из вариантов (кредит для @Mark Cassidy на SlackChat) заключается в использовании конвейера Initialize и в этом регистре процессора для события начала сеанса.

+0

Что такое эквивалент конвейера Sitecore для Session_Start? – Coding101

+0

@ Coding101: Я обновил ответ, чтобы включить некоторые предложения. К сожалению, нет прямого отображения. –

0

Это возможно да, быстрый поиск Google оказался этим:

http://www.nehemiahj.com/2013/01/how-to-enable-single-sign-on-in-sitecore.html

на основе модуля AD от Sitecore

http://sdn.sitecore.net/SDN5/Products/AD/AD11/Documentation.aspx

Это должно дать вы - хорошее место для начала.

+0

У меня уже настроен и работает модуль LDAP. Я ищу код, который поможет мне аутентифицировать пользователей программным путем. – Gabbar

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