2017-06-14 12 views
1

アプリケーションについては、最近Web APIを実装しました。ベアラトークン認証を使用します。当社の顧客は、設定ページでトークン有効期限を変更し、データベースに保存する機会を命じました。そこStartup.Auth.csASP.Net Web Apiランタイムでトークンの有効期限を変更する方法

static Startup() 
{ 
    SettingsService _settingService = EngineContext.Current.Resolve<SettingsService>(); 
    var hostSettings = _settingService.GetHostSettings(); 
    OAuthServerOptions = new OAuthAuthorizationServerOptions() 
    { 
     AllowInsecureHttp = true, 
     TokenEndpointPath = new PathString("/token"), 
     AccessTokenExpireTimeSpan = TimeSpan.FromHours(hostSettings.ApiTokenExpirationTimeInHours), 
     Provider = new ApplicationOAuthProvider() 
    }; 
} 

にデータベースおよび変更時からそれを得るために何ら問題はありません。しかし、我々はアプリケーションに、我々は有効期限を変更するたびに再起動する必要があります。アプリを再起動せずにAccessTokenExpireTimeSpanを動的に変更するにはどうすればよいですか?

答えて

0

この問題の解決法は非常に簡単でした。 OAuthServerOptionsプロパティが

public static OAuthAuthorizationServerOptions OAuthServerOptions { get; private set; } 

プライベートセッターで静的パブリックプロパティとして作られたので、OAuthのオプションはStartupクラスの外で利用可能です。したがって、ホストの設定が変更された場合、有効期限は自由に変更できます。

Startup.OAuthServerOptions.AccessTokenExpireTimeSpan = TimeSpan.FromHours(hostSettings.ApiTokenExpirationTimeInHours); 
関連する問題