我正在使用 Owin 管道并在 startup.auth.cs 中设置应用程序 cookie 间隔,如下所示 timeout=Convert.ToDouble(ConfigurationManager.AppSettings["SessionTimeOut"]);
// Owin Middleware3 - Cookie Authentication Middleware
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
LoginPath = new PathString("/Account/Login"),
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
ExpireTimeSpan = TimeSpan.FromMinutes(timeout),
SlidingExpiration = true
}
});
当我在 web.config 中更改 SessionTimeout 的值时,我需要重新启动 IIS 以采用新值,因为 startup.auth.cs 仅在第一次被调用。无论如何我可以在不重新启动 IIS 的情况下动态更改 cookie expiretimespan。我还在 startup.auth.cs 中配置的地方使用 kento.authservices 进行单点登录。我还需要动态更改其中的配置值。请你帮忙解决这个问题。
最佳答案
与其将新对象 CookieAuthenticationOptions 传递给 UseCookieAuthentication,不如保留一个引用并传递该引用。这样您就可以在它更改时设置 ExpireTimeSpan。
CookieAuthenticationOptions Co = new CookieAuthenticationOptions();
然后在代码中设置值变化时的Co.ExpireTimeSpan。
关于c# - 动态更改 Owin 配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532093/