对于我们的ASP.Net
应用程序,我们最近实现了Web API
使用。我们使用不记名令牌认证。我们的客户已经订购了在设置页面上更改令牌到期时间并将其存储在数据库中的机会。从数据库中获取并更改时间没有问题Startup.Auth.cs
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
不重启应用程序的情况下动态修改?
这个问题的解决方法很简单。OAuthServerOptions
使用私有 setter 将属性设为静态公共属性
public static OAuthAuthorizationServerOptions OAuthServerOptions { get; private set; }
因此,OAuth 选项可在Startup
课外使用。所以当主机设置改变时,到期时间可以自由改变
Startup.OAuthServerOptions.AccessTokenExpireTimeSpan = TimeSpan.FromHours(hostSettings.ApiTokenExpirationTimeInHours);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句