2015-08-10 1 views
1

Я разработал веб-приложение в asp.net/MVC/RAZOR/C#. Клиент хочет, чтобы пользователь заходил на этот сайт и не должен вводить логин/пароль, если они принадлежат определенному домену. Пользователи вне этого домена могут использовать стандартный экран входа в систему, вводя свой логин и пароль. Я никогда раньше не работал с Active Directory, и моя работа с IIS ограничена. Может кто-нибудь объяснить, как это настроить?Как ограничить использование веб-сайта в активном каталоге конкретной компании?

С этой ссылкой, http://www.iis.net/configreference/system.webserver/security/authentication/windowsauthentication, я решил, что мне нужно использовать параметр проверки подлинности Windows в IIS. Тем не менее, все это делает запрос пользователю на имя пользователя и пароль, когда они идут на сайт. В настоящий момент аутентификация настроена так, что аутентификация Windows включена с ответом «HTTP 401 Challenge», а включенным провайдером является «Negoiate: Kerberos». Как я могу избежать этого экрана входа в систему и передать имя пользователя, группу и домен пользователя Active Directory на веб-сайт?

Если я пройду экран входа в систему, я попытаюсь получить идентификатор пользователя с помощью WindowsIdentity.GetCurrent(). Однако это показывает «IIS APPPOOL» независимо от того, в кого я вхожу. Как получить имя пользователя Active Directory? (И группа)

Я добавил следующий код в моем web.config:

<system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
     <allow users="DOMAINNAME\*" /> 
     <deny users="?"/> 
     </authorization> 
     ... 

Прежде чем я нашел ссылку IIS выше, я попробовал код, указанный на этих сайтах: http://www.codeproject.com/Tips/458039/Application-Login-through-Active-Directory-LDAP http://www.codeproject.com/Articles/5173/Web-based-Active-Directory-Login Они работают в аутентифицировать пользователя, но они требуют пароля, которого у меня нет. Я не мог найти способ получить пароль, что заставило меня посмотреть дальше и найти информацию об IIS. К сожалению, я не знаю, как его настроить.

Если бы кто-нибудь мог дать мне несколько простых шагов, как это сделать, я был бы признателен. Спасибо.

ответ

0

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

Если вы хотите использовать тот же метод, вы можете просто указать имя группы «Пользователи домена», чтобы разрешить всем пользователям. Как так:

var User = System.Web.HttpContext.Current.User; 
var isUser = User.IsInRole(System.Configuration.ConfigurationManager.AppSettings.Get("SystemUsersADGroupname")); 

Затем я добавил следующее web.config, чтобы определить имя группы:

<configuration> 
    <appSettings> 
     <add key="SystemUsersADGroupname" value="mydomain\Domain Users" /> 
    </appSettings> 
</configuration> 

я мог бы проверить на значение переменной isUser, чтобы определить, является ли пользователю было разрешено продолжить или нет.

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