MVC 客户端无法在 IIS 上进行身份验证
本文关键字:身份验证 IIS 客户端 MVC | 更新日期: 2023-09-27 17:56:48
我已经成功地实现了IdentityServer3。我创建了 ASP.NET 具有隐式流和以下 Owin 启动配置的 MVC5 客户端:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{ AuthenticationType = "Cookies" });
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = "mvc.client",
Authority = Constants.ServerUri,
RedirectUri = Constants.MvcClientUri,
ResponseType = "id_token",
Scope = "openid profile",
UseTokenLifetime = false,
SignInAsAuthenticationType = "Cookies",
Notifications = new OpenIdConnectAuthenticationNotifications
{ SecurityTokenValidated = TokenValidatedNotification },
});
在 IIS Express 上本地运行一切正常,但在部署到生产 IIS 服务器时失败。在这两种情况下,身份验证都是成功的 - id_token
从同一 IdentityServer 返回,但在生产用户上从未进行身份验证,也不会触发通知。程序集Microsoft.Owin.Host.SystemWeb
项目引用。我已经将异常处理OwinMiddleware
注册为第一个,但没有捕获未处理的异常。
> 确保生产 IIS 将网站配置为使用Anonymous
身份验证,因为您不依赖于 IIS 的身份验证基础结构,您希望请求流经 IIS 并到达负责身份验证的 OWIN 中间件。