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注册为第一个,但没有捕获未处理的异常。

MVC 客户端无法在 IIS 上进行身份验证

> 确保生产 IIS 将网站配置为使用Anonymous身份验证,因为您不依赖于 IIS 的身份验证基础结构,您希望请求流经 IIS 并到达负责身份验证的 OWIN 中间件。