Проблемы с проверкой подлинности формы, вызов обработчика http в app2 из app1, не аутентифицирующийся - PullRequest
0 голосов
/ 17 марта 2010

У меня есть 2 веб-приложения asp.net.

http://app1.local/

и

http://app2.local/

В App2 есть httpHandler, который принимает некоторые учетные данные и регистрирует пользователя, используя проверку подлинности с помощью форм.

FormsAuthentication.SetAuthCookie(cookieUserName, createPersistentCookie);
HttpCookie authCookie = context.Response.Cookies[FormsAuthentication.FormsCookieName];

Я запускаю это прямо в своем браузере, и когда я открываю другую страницу в app2, я просто захожу в систему.

Проблема:

В app1 у меня есть страница входа, которая отправляет httpwebrequest httpHandler в app2. По какой-то причине когда я вхожу с теми же учетными данными и затем захожу в app2, я не захожу на сайт app2 .

Почему это?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Мне кажется, что App2 - это ваша служба аутентификации, которая используется другими приложениями (в данном случае только App1) для аутентификации пользователя.

Теперь войти в систему напрямую через страницу входа в App2 и аутентифицировать пользователя в App1 с помощью вызова HTTP-запроса совершенно иначе, даже если аутентификация происходит только в App2.

Как отладить и решить:

Http-запрос, осуществляемый через App1 к App2, в большинстве случаев будет вызывать метод, отличный от прямого входа в App2. Этот http-запрос от App1 к App2 не предполагает взаимодействия с браузером - это внутренний вызов между этими двумя приложениями. Одним из способов решения этой проблемы было бы то, что App1 должен также устанавливать те же куки, что и App2. Другие подсказки можно узнать, если вы сможете выяснить различия в обоих методах и преодолеть разрыв.

0 голосов
/ 17 марта 2010

У них одинаковое имя куки? (FormsAuthentication.FormsCookieName) Если они это сделают, они могут перезаписывать друг друга.

Тот факт, что полномочия одинаковы, не имеет значения (я думаю). Поскольку они представляют собой два разных приложения / сайта, у них нет явных доверительных отношений - пользователи должны сами проходить аутентификацию (что неудивительно). Поэтому, если тот же файл cookie проверки подлинности с помощью форм перезаписывается, ваша предыдущая проверка подлинности теряется.

...