C# 在ASP.NET核心MVC中从控制器添加会话超时

C# 在ASP.NET核心MVC中从控制器添加会话超时,c#,asp.net-core,.net-core,asp.net-core-mvc,session-state,C#,Asp.net Core,.net Core,Asp.net Core Mvc,Session State,如何在ASP.NET Core MVC中从控制器添加会话超时 我正在使用ASP.NET核心MVC web应用程序,需要从控制器的操作方法添加会话超时。在ConfigureServices中配置会话 services.AddSession(options => { options.IdleTimeout = TimeSpan.FromSeconds(120); options.Cookie.HttpOnly = true;

如何在ASP.NET Core MVC中从控制器添加会话超时


我正在使用ASP.NET核心MVC web应用程序,需要从控制器的操作方法添加会话超时。

在ConfigureServices中配置会话

 services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromSeconds(120);
            options.Cookie.HttpOnly = true;
            options.Cookie.IsEssential = true;
        });

在ConfigureServices中配置会话

 services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromSeconds(120);
            options.Cookie.HttpOnly = true;
            options.Cookie.IsEssential = true;
        });

您可以尝试自定义注册会话的,并用以下内容装饰控制器或操作:

public class SessionPipeline
{
    public void Configure(IApplicationBuilder applicationBuilder)
    {
        var options = new SessionOptions
        {
            IdleTimeout = TimeSpan.FromSeconds(5),
        };
        applicationBuilder.UseSession(options);
    }
}

[MiddlewareFilter(typeof(SessionPipeline))]
public class HomeController : Controller
{
}
Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => false;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddSession();

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        //...more middlewares

        app.UseSession();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }
public void配置服务(IServiceCollection服务)
{
配置(选项=>
{
//此lambda确定给定请求是否需要非必要cookie的用户同意。
options.checkApprovered=context=>false;
options.MinimumSameSitePolicy=SameSiteMode.None;
});
services.AddSession();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
公共无效配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
//…更多的中间产品
app.UseSession();
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“默认”,
模板:“{controller=Home}/{action=Index}/{id?}”);
});
}

您可以尝试自定义注册会话的,并用以下内容装饰控制器或操作:

public class SessionPipeline
{
    public void Configure(IApplicationBuilder applicationBuilder)
    {
        var options = new SessionOptions
        {
            IdleTimeout = TimeSpan.FromSeconds(5),
        };
        applicationBuilder.UseSession(options);
    }
}

[MiddlewareFilter(typeof(SessionPipeline))]
public class HomeController : Controller
{
}
Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => false;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddSession();

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        //...more middlewares

        app.UseSession();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }
public void配置服务(IServiceCollection服务)
{
配置(选项=>
{
//此lambda确定给定请求是否需要非必要cookie的用户同意。
options.checkApprovered=context=>false;
options.MinimumSameSitePolicy=SameSiteMode.None;
});
services.AddSession();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
公共无效配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
//…更多的中间产品
app.UseSession();
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“默认”,
模板:“{controller=Home}/{action=Index}/{id?}”);
});
}

您好,先生。我也知道这一点,但我只是告诉您如何更改控制器的会话超时,甚至不包括启动class@RahulRathaur找到解决办法了吗?我还需要你需要的这个解决方案。你好,先生。我也知道这一点,但我只是告诉您如何更改控制器的会话超时,甚至不包括启动class@RahulRathaur找到解决办法了吗?我也需要你需要的这个解决方案。