IdentityServer v3和自定义Cookie

时间:2017-04-05 16:10:15

标签: c# asp.net cookies identityserver3

我正在更新我们的MVC应用程序以使用IdentityServer v3来使用隐式流来实现OpenID Connect身份验证。

我已覆盖AuthenticateLocalAsync类的IdentityServer UserServiceBase方法,以调用我们现有的身份验证服务来验证提供的凭据。此服务还设置了我们的应用程序所需的各种cookie。

我遇到的问题是,在登录页面输入凭据后,它不会重定向到ReturnUri OpenIdConnectAuthenticationOptions参数中指定的UseOpenIdConnectAuthentication } 方法。相反,它仍保留在登录页面上,并且似乎进入无限循环,在对通知处理程序SecurityTokenValidatedSecurityTokenReceived的调用之间交替。 IdentityServer日志中没有任何错误迹象。

我认为问题的原因与在我们的身份验证服务中设置特定于应用程序的cookie有关。如果我注释掉以下内容,则会在登录时成功重定向:

var cookie = new HttpCookie("AppCookie") { HttpOnly = false, Secure = true };
cookie ["CustomField1"] = HttpUtility.UrlEncode(customValue1);
cookie ["CustomField2"] = HttpUtility.UrlEncode(customValue2);
this._httpContext.Response.Cookies.Set(cookie);

但是,我们的应用程序需要这些cookie,因此需要在响应中设置。为什么设置这些cookie会阻止它重定向?有没有解决方法?非常感谢任何帮助。

0 个答案:

没有答案