当前位置: 首页 > article >正文

asp.net core会话session设置滑动过期时间

微软asp.net core帮助文档
asp.net core会话
https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/app-state?view=aspnetcore-8.0

Program.cs 文件中,核心代码:

builder.Services.AddSession(options => { 
  //滑动过期时间,空闲多长时间没有操作会过期;
    options.IdleTimeout = TimeSpan.FromSeconds(30);
});

Program.cs 完整代码

using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.CodeAnalysis;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
using WebProjectNet7;
using WebProjectNet7.DataBaseEntity.Tool;
using WebProjectNet7.DependencyInjection;
using WebProjectNet7.Handler;
using WebProjectNet7.IBLL;
using WebProjectNet7.IBLL_impl;
using WebProjectNet7.IDAO;
using WebProjectNet7.IDAO_impl;
using WebProjectNet7.ViewEntity;

var builder = WebApplication.CreateBuilder(args);

//依赖注入,注册接口,修改时间:2024-2-19 13:45:17,
ServicesRegister.Register(builder);

// Views视图文件输出到发布目录
//builder.Services.AddRazorPages().AddRazorRuntimeCompilation();
builder.Services.AddRazorPages();

builder.Services.AddControllersWithViews(ops =>
{
    //全局异常过滤器,注册
    ops.Filters.Add<ExceptionFilter>();
})

    // Views视图文件输出到发布目录
    .AddRazorRuntimeCompilation()

.AddNewtonsoftJson(options =>
{
    options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
});

builder.Services.AddSession(options => { 
  //滑动过期时间,空闲多长时间没有操作会过期;
    options.IdleTimeout = TimeSpan.FromSeconds(30);
});

builder.Services.AddHttpContextAccessor();
//解决输入页面中文被编码了
builder.Services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));

// 添加 CORS 支持,允许跨域
builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowAnyOrigin",
        builder =>
        {
            builder.AllowAnyOrigin()     // 允许任何来源
                   .AllowAnyHeader()     // 允许任何头部
                   .AllowAnyMethod();    // 允许任何 HTTP 方法
        });
});


var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
}
// 启用 CORS 中间件
app.UseCors("AllowAnyOrigin");

app.UseStaticFiles();

app.UseRouting();

string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, MyConfigReader.GetConfigValue("uploadFilefolder"));
if (!System.IO.Directory.Exists(dir))
{
    System.IO.Directory.CreateDirectory(dir);
}

string direxport = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, MyConfigReader.GetConfigValue("exportFilefolder"));
if (!System.IO.Directory.Exists(direxport))
{
    System.IO.Directory.CreateDirectory(direxport);
}
//配置静态文件,暴露在http管道中,以供浏览器访问
app.UseStaticFiles(new StaticFileOptions()
{
    RequestPath = new PathString("/" + MyConfigReader.GetConfigValue("uploadFilefolder")),
    FileProvider = new PhysicalFileProvider(dir)
});

app.UseStaticFiles(new StaticFileOptions()
{
    RequestPath = new PathString("/" + MyConfigReader.GetConfigValue("exportFilefolder")),
    FileProvider = new PhysicalFileProvider(direxport)
});

app.UseAuthorization();

app.UseSession();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");


AppServicesHelpter.App = app;

app.Run();

http://www.kler.cn/news/364080.html

相关文章:

  • 开源FluentFTP实操,操控FTP文件
  • 2023 ICPC 亚洲澳门赛区赛 D. Graph of Maximum Degree 3
  • G - Add and Multiply Queries
  • 在 typescript 中,如何封装一个 class 类来接收接口的响应数据
  • 基于Multisim的水位测量电路设计与仿真
  • 基于SSM机场网上订票系统的设计
  • Web3.0技术入门
  • YOLO11改进 | 主干网络 | 简单而优雅且有效的VanillaNet 【华为诺亚方舟】
  • 【rk3568】sg90舵机pwm控制
  • uniapp 获取签名证书 SHA1 自有证书签名打包
  • 什么是Kubernetes?K8s基础与工作原理
  • QMetaObject invokeMethod
  • 长城坦克正式公布全新越野架构Hi4-Z,开启越野新时代
  • STM32之EC800K 4G模块驱动
  • 网络文件系统搭建
  • k8s 外部的 Prometheus 监控 k8s 集群
  • RHCE 多IP访问多网站
  • 使用flask构建一个简单的文件同步系统
  • 数字化园区:树莓集团引领的科技与管理革新
  • OpenAI GPT-o1实现方案记录与梳理
  • 【Python入门】初识Python
  • 网络地址转换——NAT技术详解
  • 在 Go 中,如何实现一个带过期时间的字典映射
  • colcon构建ros2功能包时,出现exited with code 2报错的解决方案(bug)
  • 构建后端为etcd的CoreDNS的容器集群(五)、coredns对接etcd测试
  • 延迟队列实现及其原理详解