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

时间:2016-07-14 05:53:17

标签: c# asp.net-mvc-5 identityserver3 iis-8.5

我成功实现了IdentityServer3。我使用隐式流和这个Owin启动配置创建了ASP.NET 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服务器时失败。在两种情况下身份验证都是成功的 - 从同一个IdentityServer返回id_token,但是在生产用户从未进行身份验证时,不会触发通知。项目参考Microsoft.Owin.Host.SystemWeb汇编。我已将异常处理OwinMiddleware注册为第一个,但未捕获任何未处理的异常。

1 个答案:

答案 0 :(得分:0)

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