2016-09-16 10 views
1

Owinパイプラインを使用し、startup.auth.csでアプリケーションのCookie間隔を次のように設定しています timeout = Convert.ToDouble(ConfigurationManager.AppSettings ["SessionTimeOut"]);Owinの設定値を動的に変更しました

  // Owin Middleware3 - Cookie Authentication Middleware 

      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       LoginPath = new PathString("/Account/Login"), 
       AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
       ExpireTimeSpan = TimeSpan.FromMinutes(timeout), 
       SlidingExpiration = true 

       } 
      }); 

私は彼にstartup.auth.csは初回のみと呼ばれるように、新しい値をトンを取るためにIISを再起動する必要があるweb.configファイルであるSessionTimeoutの値を変更します。とにかく、IISを再起動しなくてもcookieの有効期限を動的に変更できますか?私は、startup.auth.csで設定するシングルサインオンのためにkento.authservicesも使用しています。私はこれも動的に設定値を変更する必要があります。これで助けてください。

+0

web.configを変更したときにIISを再起動する必要はないと思うので、アプリケーションプールが再起動されます。 –

+0

ありがとうございました。しかし、startup.auth.csの設定値の一部がデータベースから取得しています。アプリケーションがstartup.auth.csで起動すると、値はデータベースから取得されます。しかし、ユーザーのログイン後、管理ページからこれらの値がデータベースで変更され、ユーザーがログアウトして再度開始すると、新しい変更された値が発生するはずですが、startup.auth.csは最初にアプリケーションが開始されます。どのようにこれらの値を動的に変更できますか? – VVR147493

答えて

0

新しいオブジェクトCookieAuthenticationOptionsをUseCookieAuthenticationに渡すのではなく、参照を保持して参照を渡すことができます。変更すると、ExpireTimeSpanを設定できます。

CookieAuthenticationOptions Co = new CookieAuthenticationOptions();

そして、値が変更されたときにコードにCo.ExpireTimeSpanを設定します。

+0

ありがとうAbhishek。参考のために同じことをするリンクや例を提供してください。 – VVR147493

+0

あなたの場合、次の変更を加えることができます:CookieAuthenticationOptions co = new CookieAuthenticationOptions(新しいPathString( "/ Account/Login")、DefaultAuthenticationTypes.ApplicationCookie、TimeSpan.FromMinutes(timeout)、true); app.UseCookieAuthentication(co);新しい値がデータベースから取得されると、それをco.ExpiresTimeSpanに割り当てることができます。 - Co.ExpiresTimeSpan = <データベースからの新しい値>; CookieAuthenticationOptionsオブジェクトのExpiresTImeSpan値に、参照先 – abhishek58g

+0

Thanks Abhishekを通じてアクセスできるようになりました。しかし、私は他のページから有効期限を取得しています。そのページでは、新しいCookie認証オプションを割り当てるために、(IAppbuilder)のアプリケーションは利用できません。 – VVR147493

関連する問題