2012-08-08 2 views
1

Я занимаюсь разработкой веб-приложений с MVC-3Как определить, если запрос исходит от конкретного домена окна

Я хочу, чтобы дать пользователям определенного домена Windows некоторые особые привилегии; поэтому я должен определить, поступает ли запрос от этого конкретного домена.

Обратите внимание, что я использую проверку подлинности на Формах.

Я знаю, что могу это сделать, отслеживая IP-адрес пользователя. Но есть ли способ получить доменное имя?

Например, если пользователь зарегистрирован как ADomain\AUsername на машине для окон, есть ли способ получить ADomain?

+0

[Использование проверки подлинности форм с Active Directory в нескольких доменах] (http://msdn.microsoft.com/en-us/library/ff650307.aspx) –

+0

@RobertHarvey: Это говорит * «Этот контент устарел и больше не поддерживается ...» *. Должен ли я продолжать это? – Mohayemin

+0

@RobertHarvey - описанные там методы не работают в IIS7 или выше. –

ответ

2

Ответ, возможно, и иногда. Во-первых, только Internet Explorer передает учетные данные на сервер. Во-вторых, сервер должен находиться в том же домене, что и клиент, в-третьих, не должно быть никаких прокси-серверов или других вещей между ними. И компьютер, и клиент должны быть в одной и той же сети.

Даже при всем этом он по-прежнему работает только иногда. Какая версия IIS? Если это IIS7 или выше, тогда возникают другие проблемы, при которых невозможно объединить проверку подлинности и проверку подлинности Windows. Если вы используете IIS6, то это может быть сделано, но это огромная боль.

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

+0

* Это просто слишком много усилий, чтобы сохранить пользователей от ввода имени пользователя и пароля. * Да, да. Я думаю, я должен просто избегать этого. – Mohayemin

1

Вы можете получить доменное имя, используя UrlReferrer объекта запроса.

string Domain Name = Request.UrlReferrer.Host; 

Кроме того, если вы хотите проверить в вашем приложении, является ли запрос, исходящий из другого домена или нет, то, пожалуйста, попробуйте проверить имя хоста URL ссылающейся на имя хоста вашего собственного URL приложения. Пожалуйста, используйте код ниже

(if Request.Url.Host != Request.UrlReferrer.Host) 
{ 
}