3

このチュートリアルを私のプロジェクトに適用した後、私のローカル ホストでは問題はありませんが、plesk 上の prod サーバーにデプロイすると、セッションの期限切れが速すぎます。おそらく5分もかからず、常にこのような状態です。

チュートリアルでは Cookie の代わりに localStorage を使用しているため、Cookie のタイムアウトを確認する必要があるかどうかわかりません。

一方、私の Startup.Auth.cs には次のようなものがあります。

    public void ConfigureAuth(IAppBuilder app)
    {
        //...
        OAuthOptions = new OAuthAuthorizationServerOptions
        { 
            //...
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
        };
    }

prod IIS はどのようにタイムアウトを設定し、このタイムアウトをオーバーライドするには web.config で何をする必要がありますか?

4

1 に答える 1

4

本番環境には 14 日では足りないということでしょうか。そうでない場合は、「速すぎる」とは正確に何を意味するのかを明確にする必要があります。

これを行う最も簡単な方法は、web.config に設定を追加することです。

<appSettings>
    <add key="cookieExpirationDays" value="30"/>
</appSettings>

そして、それをメソッドに設定します。

 public void ConfigureAuth(IAppBuilder app) {
    //...
   var daysStr = System.Configuration.ConfigurationManager.AppSettings["cookieExpirationDays"];
   var days = string.IsNullOrEmpty(daysStr) ? 14 : int.Parse(daysStr);
    OAuthOptions = new OAuthAuthorizationServerOptions
    { 
    //...
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(days),
  };
}

EDIT(OPの編集に応じて)

Cookie を使用して認証トークンを永続化する場合は、これを試してください (初期化子の最後の行を参照してください)。

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    CookieName = "SecurityCookie",
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Authentication/Login"),
    CookieSecure = CookieSecureOption.SameAsRequest,
    CookieHttpOnly = true,
    AuthenticationMode = AuthenticationMode.Active,
    Provider = cookieProvider, // instance of Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider
    LogoutPath = new PathString("/Authentication/LogOff"),
    SlidingExpiration = true,
    ExpireTimeSpan = TimeSpan.FromDays(days),
});

編集2 リンクの例を追加

完全なチュートリアル

一般的な Microsoft ドキュメントとヘルプ

于 2015-08-24T21:14:09.540 に答える