Azure AD B2C:错误请求 - 请求太长HTTP错误400.请求标头的大小太长。登录后

时间:2018-04-26 10:05:33

标签: azure azure-web-sites azure-active-directory azure-ad-b2c azureportal

我知道早些时候at stack overflow已经提出了类似的问题,但它对我没有用。在回答/评论之前,请仔细阅读整个问题。

我在两个网络应用程序中实现了AD B2C,直到上周都工作正常。现在我们突然得到了

  

错误请求 - 请求太长HTTP错误400.请求的大小   标题太长了。

当用户尝试登录网站时。由于我的网站要求每个用户都登录,因此它完全阻止了我们。

我的网络应用也无法在隐身/隐私窗口中使用。浏览器:Chrome,Firefox和Edge

当我在删除所有历史记录后以chrome(非隐身)方式打开应用程序时,我可以看到网络应用程序网址中有大约160多个Cookie。

是的,过多的cookie似乎正在杀死我的网络应用程序,但即使在删除浏览器的所有历史记录和私密浏览之后也会发生这种情况。

即使我已将声明属性缩减为3,怀疑更多声明属性可能会增加标头大小。 enter image description here

我尝试了this too,但徒劳无功。

结论:删除Cookie和减少声明对我们都不起作用,我们会被阻止。提前致谢。

1 个答案:

答案 0 :(得分:2)

我在与Microsoft支持团队一起提交了一张票后得到了修复。

原因: Owin Middle ware存在一个众所周知的问题,它没有设置身份验证cookie,我们最终处于登录循环中。我使用的是旧版本的OWIN。

解决方案: OWIN版本3.1.0.0已根据Cookie管理器集成了此修复程序。

注意:尽管使用了修复程序,但如果我们在应用程序中使用自定义SESSIONSTATE处理程序,我们可能会遇到问题。在STARTUP.AUTH.CS中,我们需要进行以下更改

旧:

app.UseCookieAuthentication(new CookieAuthenticationOptions{});

新:

app.UseCookieAuthentication(new CookieAuthenticationOptions   {
      AuthenticationType = "Cookies",
      CookieManager = new Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager() 
  });

以下是讨论相同的问题:

Second sign-in causes infinite redirect loop after the first successful login MVC .NET 5 OWIN ADAL OpenIDConnect

希望这有助于其他人。
快乐的编码。