验证用户身份时,ASP.NET Core Web应用程序URL区分大小写

时间:2019-01-17 22:35:38

标签: asp.net authentication asp.net-core saml

我有一个测试ASP.NET Core 2.0 Web应用程序,该应用程序使用SAML对用户进行身份验证。如果在浏览器中键入的URL与IIS 10中Web应用程序名称的大小写匹配(例如... / MyTestSite),则一切正常。但是,如果用户键入其他大小写(例如... / mytestsite),他们将无法通过身份验证。

在代码中,故障点在OnGetCallbackAsync类的ExternalLogin方法的这一行:

var info = await _signInManager.GetExternalLoginInfoAsync();

info == null开始,在这种情况下,用户将被重定向回登录页面。

我注意到.AspNetCore.Antiforgery令牌具有来自url(/ mytestsite)的路径值,但是Identity.External路径值为站点名称(/ MyTestSite)。

我不确定为什么会发生这种情况,或者为什么案件会变得如此重要。

1 个答案:

答案 0 :(得分:0)

(假设您正在使用身份验证方案)

默认情况下,所有身份验证方案都区分大小写,这就是为什么在身份验证时匹配大小写的原因。如果要使URL不区分大小写,可以添加如下的路由选项:

my_app

注意:这将提供对URL的支持,但是您可以尝试这样做。

希望这会有所帮助!