C# 动态更改Owin配置值

C# 动态更改Owin配置值,c#,asp.net-mvc-4,cookies,owin,owin-middleware,C#,Asp.net Mvc 4,Cookies,Owin,Owin Middleware,我正在使用Owin管道和startup.auth.cs设置应用程序cookie间隔,如下所示 超时=Convert.ToDouble(ConfigurationManager.AppSettings[“SessionTimeOut”]) 当我在web.config中更改SessionTimeout的值时,我需要重新启动IIS以获取新值,因为startup.auth.cs仅第一次被调用。无论如何,我都可以在不重新启动IIS的情况下动态更改cookie expiretimespan。我还使用kent

我正在使用Owin管道和startup.auth.cs设置应用程序cookie间隔,如下所示 超时=Convert.ToDouble(ConfigurationManager.AppSettings[“SessionTimeOut”])


当我在web.config中更改SessionTimeout的值时,我需要重新启动IIS以获取新值,因为startup.auth.cs仅第一次被调用。无论如何,我都可以在不重新启动IIS的情况下动态更改cookie expiretimespan。我还使用kento.authservices进行单点登录,在startup.auth.cs中进行配置。我还需要动态地更改此中的配置值。请对此提供帮助。

您可以保留一个引用并传递该引用,而不是传递一个新对象CookieAuthenticationOptions以使用CookieAuthentication。它将使您能够在其更改时设置ExpireTimeSpan

CookieAuthenticationOptions Co=新CookieAuthenticationOptions()


然后在值更改时在代码中设置Co.ExpireTimeSpan。

我相信您什么都不做,也不需要像更改web.config时那样重新启动IIS,这也会使应用程序池重新启动。但是startup.auth.cs中的一些配置值是从数据库中获取的。当应用程序在startup.auth.cs中启动时,该值将从数据库中获取。但是,在用户登录后,这些值通过管理页面在数据库中被更改,并且在用户注销并再次启动后,新更改的值应该发生,但这不会发生,因为在应用程序首次启动时,startup.auth.cs只被调用一次。我如何动态地改变这些值。谢谢阿披实。请提供一个链接或一个示例,以供参考。在您的情况下,您可以进行以下更改:CookieAuthenticationOptions co=new CookieAuthenticationOptions(new PathString(“/Account/Login”)、DefaultAuthenticationTypes.ApplicationCookie、TimeSpan.FromMinutes(timeout)、true;app.UseCookieAuthentication(co);然后,当从数据库检索到新值时,可以将其分配给co.expireestimespan:-co.expireestimespan=;现在,您可以通过引用coThanks Abhishek访问CookieAuthenticationOptions对象中的值ExpiresTImeSpan。但我正在从另一个页面检索过期时间跨度。在该页面中,应用程序(IAppbuilder)不可用,无法分配新的cookie authenticationoptions。
           // Owin Middleware3 - Cookie Authentication Middleware

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

                }
            });