2010-03-24 3 views
0

У моего клиента есть сервер обмена и предлагает бесплатные учетные записи электронной почты своим клиентам и партнерам. Его клиенты нуждаются в доступе к некоторым веб-приложениям с помощью логина и пароля и должны быть аутентифицированы.Аутентификация с использованием обмена

Я думал о создании пользовательского поставщика членства asp.net, который попадает на биржу вместо обычного хранилища aspnetdb.

Есть ли способ аутентифицировать этих пользователей с помощью обмена данными с их обменом, предоставленным электронной почтой/именем пользователя и паролем?

спасибо.

ответ

1

Если я не ошибаюсь, то Exchange аутентифицируется через и только через Active Directory. Таким образом, вы можете использовать некоторые из встроенных механизмов аутентификации LDAP.

Есть уже немало жизнеспособных подходов к этому, если вы делаете поиск ASP.NET LDAP Authentication

Однако ИМО, самый простой способ будет просто использовать ASP.NET режим проверки подлинности Windows:

<system.web> 
    ... 
    <authentication mode="Windows"/> 
    ... 
</system.web> 

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

Вы можете получить доступ к информации домена для текущего пользователя, как это:

var user = (WindowsPrincipal)HttpContext.Current.User; // assume Windows auth. 

Примечание:, что тем не менее, существуют различные риски безопасности, которые должны быть надлежащим образом оценены до реализации.

+0

Это будет работать, только если веб-сервер и обмен находятся в одном домене. Это сложно, если они находятся в разных сетях или доменах. В любом случае вы обычно проверяете подлинность в целевом активном каталоге и можете делать это с помощью LDAP и пользовательского кодирования. Существуют различные риски для безопасности, которые необходимо смягчить. –

+0

Ну, я сказал: «И присоединяйтесь к машине, где ваш сайт будет развернут в том же домене, что и Exchange». ... но согласился с вами в точке риска безопасности. – chakrit

0

Я подозреваю, что вы прошли аутентификацию в домене AD с контролируемым клиентом. Это article должно помочь

+0

ну, я думал об активной директории. но как насчет этих пользователей с почтовыми ящиками, у которых нет учетных записей AD. i wwanna полагаю, что должен быть способ просто войти в систему, чтобы зарегистрировать учетную запись, не будучи пользователем AD. Кстати, приложение основано на веб-интерфейсе. Я слышал об обмене веб-сервисами. не включают ли они WS для аутентификации? как насчет OWA ??? любые мысли оцениваются. – user300435

0

Обычно я использовал ActiveDirectoryMembershipProvider в сочетании с аутентификацией на основе форм. Это будет использовать тот же магазин Active Directory, который использует Exchange. В MSDN имеется подробный article, посвященный различным возможностям реализации. Вы также можете использовать аутентификацию на основе Windows, как предлагает @chakrit, но имейте в виду, что после аутентификации браузер останется аутентифицированным до тех пор, пока он не будет закрыт - нет выхода из системы. Одна из приятных особенностей проверки подлинности Windows заключается в том, что если сайт находится в зонах интрасети или доверенных сайтах, вы никогда не получите запрос на ввод своих учетных данных. С другой стороны, вы не хотите, чтобы кто-то заимствовал вашу рабочую станцию ​​во время входа в систему. Я бы использовал его только для вещей, которые необходимо защитить, но они не обязательно чувствительны - например, сайт интрасети.