根本原因がAjax呼び出しであることが判明しました。
問題の流れは
1)のOAuthクッキーは有効期限が通常login.microsoft.com
にページがクッキーをリフレッシュするためにリダイレクトが発生するいくつかの時間
2)の後に有効期限が切れてしまいました。このステップでは、OAuthフレームワークは、毎回レスポンスに新しいnonce
のクッキーを追加します。
3)しかし、アヤックスはlogin.microsoft.com
にドメイン(クロスドメインの外側のリダイレクトを処理しません)。しかし、クッキーはすでにページに追加されていました。
4)次の定期的なAjax呼び出しは「一回だけの」クッキーの急激な増加の原因となる流れを繰り返しました。私はアヤックスを処理するための「OWINのOpenID」の枠組みのセットアップコードを延長しなければならなかった
ソリューション
が異なり呼び出す - リダイレクトを防ぎ、クッキーの送信を停止します。
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = ctx =>
{
bool isAjaxRequest = (ctx.Request.Headers != null && ctx.Request.Headers["X-Requested-With"] == "XMLHttpRequest");
if (isAjaxRequest)
{
ctx.Response.Headers.Remove("Set-Cookie");
ctx.State = NotificationResultState.HandledResponse;
}
return Task.FromResult(0);
}
}
});
}
Ajaxの呼び出し側は401
コードを検出し、(マイクロソフトの権威への迅速なリダイレクトを引き起こした)フル・ページ・リフレッシュを実行するために、あまりにも調整する必要がありました。私の場合は
ありがとうございました。私も同様の問題を抱えていましたが、これが解決に役立ちました。 – Namrehs
これはまた、クロムクッキーをクリアすると、私の問題を解決するようにも見えました。皮肉なことに、MSの勇敢な新しいブラウザEdgeは、IEと同じくらい多くの不一致とパフォーマンスの問題を抱えているので、今はchromeを使用しています。 –
私の問題も解決しました。ありがとう! –