Проблемы с аутентификацией формы, вызов обработчика http в приложении2 из приложения1 не проходит аутентификацию

У меня есть 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.

Почему это?


person Blankman    schedule 17.03.2010    source источник


Ответы (2)


У них одинаковое имя файла cookie? (FormsAuthentication.FormsCookieName). В этом случае они могут перезаписывать друг друга.

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

person Adrian K    schedule 17.03.2010

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

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

Как отлаживать и устранять:

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

person nanosoft    schedule 11.02.2019