Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.net Core 3.1中设置会话超时_C#_.net Core_Asp.net Core 3.1_Session Timeout - Fatal编程技术网

C# 在ASP.net Core 3.1中设置会话超时

C# 在ASP.net Core 3.1中设置会话超时,c#,.net-core,asp.net-core-3.1,session-timeout,C#,.net Core,Asp.net Core 3.1,Session Timeout,我有一个web应用程序.net core 3.1 razor页面。我将会话超时设置为30分钟,但它会在10分钟不活动后注销当前用户。全局IIS设置在服务器上设置为60分钟。这是我在Startup.cs中的代码。我错过了什么?非常感谢您的帮助。谢谢 public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguratio

我有一个web应用程序.net core 3.1 razor页面。我将会话超时设置为30分钟,但它会在10分钟不活动后注销当前用户。全局IIS设置在服务器上设置为60分钟。这是我在Startup.cs中的代码。我错过了什么?非常感谢您的帮助。谢谢

     public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddControllers().AddNewtonsoftJson(options =>
         options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
        );
        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
        services.AddTransient<IMemberService, MemberService>();
        services.AddTransient<INewsService, NewsService>();
        services.AddTransient<IUserCardService, UserCardService>();
        services.AddTransient<IUsernameService, UsernameService>();
        services.AddTransient<ILinkService, LinkService>();
        services.AddTransient<INotificationService, NotificationService>();

        services.AddTransient<IEmailSender, EmailSender>();
        services.Configure<AuthMessageSenderOptions>(Configuration);

        services.AddDbContext<DefaultContext>(options =>
         options.UseSqlServer(
         Configuration.GetConnectionString("DefaultContextConnection")));

        services.AddControllersWithViews()
                .AddSessionStateTempDataProvider();

        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential
            // cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            // requires using Microsoft.AspNetCore.Http;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddDistributedMemoryCache();

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

        services.AddRazorPages()
                .AddRazorRuntimeCompilation()
                .AddSessionStateTempDataProvider();

        services.AddSession();
    }

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
            //app.UseDatabaseErrorPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();

        app.UseRewriter();

        app.UseStaticFiles();

        app.UseCookiePolicy();

        app.UseRouting();
       
        app.UseAuthentication();
        app.UseAuthorization();

        app.UseSession();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages();

        });



    }
公共启动(IConfiguration配置)
{
配置=配置;
}
公共IConfiguration配置{get;}
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddControllers().AddNewtonsoftJson(选项=>
options.SerializerSettings.ReferenceLoopHandling=Newtonsoft.Json.ReferenceLoopHandling.Ignore
);
services.AddSingleton();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
服务。配置(配置);
services.AddDbContext(选项=>
options.UseSqlServer(
GetConnectionString(“DefaultContextConnection”);
services.AddControllersWithViews()
.AddSessionStateTempDataProvider();
配置(选项=>
{
//此lambda确定用户是否同意非必要的
//给定的请求需要cookies。
options.checkApprovered=context=>true;
//需要使用Microsoft.AspNetCore.Http;
options.MinimumSameSitePolicy=SameSiteMode.None;
});
AddDistributedMemoryCache();
services.AddSession(选项=>
{
options.IdleTimeout=TimeSpan.FromMinutes(30);
options.Cookie.HttpOnly=true;
options.Cookie.IsEssential=true;
});
services.AddRazorPages()
.AddRazorRuntimeCompilation()文件
.AddSessionStateTempDataProvider();
services.AddSession();
}
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
//app.UseDatabaseErrorPage();
}
其他的
{
app.UseExceptionHandler(“/Error”);
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRewriter();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseSession();
app.UseEndpoints(端点=>
{
endpoints.MapRazorPages();
});
}