Совместное использование проверки подлинности ASP.NET между двумя приложениями - PullRequest
3 голосов
/ 05 января 2012

У меня есть два веб-приложения ASP.NET, работающие на одном веб-сервере IIS 7.5 / .NET 4.0. Первое приложение выполняет асинхронные вызовы через jquery ко второму приложению, которое действует как серверная часть веб-службы (подключенная к серверу базы данных). Эти два приложения будут установлены в контексте интрасети, поэтому я хочу использовать встроенную проверку подлинности Windows.

В обоих Web.config у меня есть:

<authentication mode="Windows" />

<authorization>
    <deny users="?" />
</authorization>

<identity impersonate="true" />

Если я открываю браузер и получаю доступ к тестовой странице, это нормально для обоих веб-приложений: браузер запрашивает пару пользователь / пароль, а IIS позволяет загружать страницу. Но если я получаю доступ к тестовой странице первого веб-приложения, которая отправляет асинхронный запрос веб-службе, установленной во втором приложении, возвращается код ошибки 401. Похоже, что аутентификация между двумя приложениями потеряна.

Я пробовал также machineKey, но ничего ...

Есть идеи?

Любая помощь приветствуется, спасибо заранее.

Alex

1 Ответ

1 голос
/ 11 января 2012

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

Вы можете обойти это, создав «прокси-вызов» в Интернете.оказание услуг.Вы делаете асинхронный вызов в локальное приложение asp.net, которое выполняет вызов веб-службы от вашего имени.Это позволяет избежать ограничения той же политики происхождения , о котором говорилось в приведенной выше ссылке.

Другой вариант, поскольку у вас есть контроль над приложением на обоих концах, заключается в просмотре JSONP .У меня нет большого опыта работы с ним, но я видел , который использовался для асинхронных вызовов между доменами.

Удачи!

...