获取基本登录提示而不是重定向
Getting Basic login prompt instead of redirect
我有一个使用 ServiceStack 的 .NET Core Web 应用程序。对于身份验证,我使用了两个身份验证提供程序; ApiKeyAuthProvider 和 CredentialsAuthProvider。我在创建 AuthFeature 时指定了重定向 URL。在凭据提供程序身份验证的情况下,使用 Windows 身份验证通过 SSO 门户完成。如果 Windows auth 用户出于某种原因注销,我希望他们被重定向回 SSO 站点。
当我不再登录时,我有以下两种情况:
场景 1:
我转到浏览器中的应用程序根目录,并使用 Axios 自动发出对 /foo 的请求,导致 401 响应。
场景 1 结果:浏览器显示基本登录提示。
场景 2:
我在浏览器的地址栏中输入 /foo 并导航到那里。
场景 2 结果:
我在创建 AuthFeature 时输入的 HtmlRedirect 启动,我被重定向回 SSO 站点。
我想要的是在第二种情况下所有导致 401 的请求得到的结果。这不应该是这样吗?我怎样才能做到这一点?
解决方案
我的同事通过在 AppHost 中初始化 AuthFeature 时更改我们的 Auth Provider 的顺序解决了这个问题。
为什么有效?
当我们的凭据 auth 提供程序而不是 api 密钥提供程序放在第一位时,响应没有 Www-Authenticate: Basic header 提示不是浏览器触发的
如果 none 个可用的身份验证提供程序 return 为真,则失败的身份验证将由列表中的第一个自动处理。
我有一个使用 ServiceStack 的 .NET Core Web 应用程序。对于身份验证,我使用了两个身份验证提供程序; ApiKeyAuthProvider 和 CredentialsAuthProvider。我在创建 AuthFeature 时指定了重定向 URL。在凭据提供程序身份验证的情况下,使用 Windows 身份验证通过 SSO 门户完成。如果 Windows auth 用户出于某种原因注销,我希望他们被重定向回 SSO 站点。
当我不再登录时,我有以下两种情况:
场景 1: 我转到浏览器中的应用程序根目录,并使用 Axios 自动发出对 /foo 的请求,导致 401 响应。
场景 1 结果:浏览器显示基本登录提示。
场景 2: 我在浏览器的地址栏中输入 /foo 并导航到那里。
场景 2 结果: 我在创建 AuthFeature 时输入的 HtmlRedirect 启动,我被重定向回 SSO 站点。
我想要的是在第二种情况下所有导致 401 的请求得到的结果。这不应该是这样吗?我怎样才能做到这一点?
解决方案
我的同事通过在 AppHost 中初始化 AuthFeature 时更改我们的 Auth Provider 的顺序解决了这个问题。
为什么有效?
当我们的凭据 auth 提供程序而不是 api 密钥提供程序放在第一位时,响应没有 Www-Authenticate: Basic header 提示不是浏览器触发的
如果 none 个可用的身份验证提供程序 return 为真,则失败的身份验证将由列表中的第一个自动处理。