В URL-адресе веб-приложения ASP.NET Core учитывается регистр при аутентификации пользователей. - PullRequest
0 голосов
/ 18 января 2019

У меня есть тестовое веб-приложение ASP.NET Core 2.0, которое аутентифицирует пользователя с использованием SAML. Все хорошо, если URL-адрес, введенный в браузере, совпадает с регистром имени веб-приложения в IIS 10 (например ... / MyTestSite). Однако, если пользователь вводит другой регистр (например, ... / mytestsite), он не сможет аутентифицироваться.

В коде точка отказа находится в методе OnGetCallbackAsync класса ExternalLogin в этой строке:

var info = await _signInManager.GetExternalLoginInfoAsync();

Начиная с info == null, в этих случаях пользователь перенаправляется обратно на страницу входа.

Я заметил, что токен .AspNetCore.Antiforgery имеет значение пути из URL (/ mytestsite), но значение пути Identity.External является именем сайта (/ MyTestSite).

Я не уверен, почему это происходит или почему дело будет иметь значение.

1 Ответ

0 голосов
/ 18 января 2019

(при условии, что вы используете схемы аутентификации)

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

services.Configure<RouteOptions>(options => options.LowercaseUrls = true);

Примечание. Это обеспечит поддержку URL-адресов, но вы можете попробовать это.

Надеюсь, это поможет!

...