6

OWIN を使用するためのスタートアップ構成が生成された ASP.NET MVC5 アプリケーションがあります。

ユーザーは私のアプリケーションにログインし、ブラウザーを開いたままにしますが、翌日アクセスしようとすると、アプリケーションはユーザーをログインページにリダイレクトします。

この問題は開発者のマシンでは再現できません。現在の共有ホスティング プロバイダーでのみ発生します。実際、以前のプロバイダーでは正しく機能していました。

アプリケーション プールはときどき再起動されますが、私の経験によると、手動でリサイクルを行っても、トークンが無効になることはありません (私の知る限り、これは予想される動作です)。

スライド有効期限を明示的に設定し、Cookie の有効性を高めようとしましたが、効果はありませんでした。

// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
     AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
     ExpireTimeSpan = TimeSpan.FromDays(365*20),
     SlidingExpiration = true,
     LoginPath = new PathString("/Account/Login")
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

.NET Framework 4.5 を使用しています。すべての NuGet パッケージを最新のものに更新しようとしましたが、問題は解決しませんでした。

送信された Cookie の有効期限を確認しましたが、正しいので問題ありません。さまざまなブラウザで発生します。

4

1 に答える 1

9

これは、Cookie が<machineKey>ASP.NET の で保護されているためです。プロバイダーがアプリ ドメインのリサイクルをトリガーするために何かを行っているか、Web ファームにいるため、マシン キーが一貫していないようです。<machineKey>web.config でa を設定してみてください。

于 2014-04-07T22:40:54.663 に答える