在我的MVC Web应用程序中使用WsFederation Authentication
时,我遇到登录循环的问题。我使用visual studio创建web应用程序的脚手架,并在Startup.cs
中设置WsFederation
。它生成以下代码块:WsFederation身份验证登录循环
public class Startup
{
private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata
});
}
}
Web应用程序托管在Azure中,并且ADFS位于本地。
在某些客户,当登录尝试登录页面进入请求新的令牌导致ADFS服务器上的以下异常的循环:
异常详细信息: Microsoft.IdentityServer.Web。 InvalidRequestException:MSIS7042:相同的客户端浏览器会话在最后'7'秒内发出'6'请求。详情请联系您的管理员。
我已阅读StackOverflow上很多文章,看了看被谁写IdentityServer的家伙提供的各种例子,我已经尝试了各种配置选项,我不能将问题隔离到一个特定的区域。
从我读到的是OWIN中间件丢失对象的上下文的一般问题,结果令牌变得“丢失”。
我试图实现一些sample code其他人提供的StackOverflow,但是,我似乎无法找到解决方案解决我的问题,或者也许没有正确实施代码。
任何想法?
我已经能够在我的本地环境中复制这个问题,但我没有更接近完全理解问题的原因。我添加了一个IP作为绑定到我的IIS Express配置,以便我可以远程访问该网站进行调试。这样做可以一致地复制循环。当我从“192.168.1.20:44341/”访问网站时;登录工作。但是,当我从“localhost:44341 /”访问网站时;登录循环发生。依赖方信任端点IP地址是我的IP地址。 –