ASP.Net Core中启用Session

在asp.net mvc中,我们使用属性[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)]  来装饰控制器来禁用会话状态;

而Asp.Net Core中则相反,需要先引入 Microsoft.AspNetCore.Session(提供管理Session的中间件),并且在Startup.cs文件中的ConfigureServices方法中添加 services.AddSession() ,在Configure方法中添加 app.UseSession(),才能启用Session。

https://www.cnblogs.com/OpenCoder/p/10362844.html

https://blog.csdn.net/qq_33986919/article/details/80117854?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

https://www.it1352.com/1771345.html

The Microsoft.AspNetCore.Session package, which is included in the Microsoft.AspNetCore.App metapackage, provides middleware for managing session state. To enable the session middleware,Startup must contain:

  1. Any of the IDistributedCache memory caches. The IDistributedCache implementation is used as a backing store for session.
  2. A call to AddSession in ConfigureServices.
  3. A call to UseSession in Configure.

Code:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddDistributedMemoryCache();

        services.AddSession(options =>
        {
            // Set a short timeout for easy testing.
            options.IdleTimeout = TimeSpan.FromSeconds(10);
            options.Cookie.HttpOnly = true;
        });

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

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

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();
        app.UseSession();
        app.UseHttpContextItemsMiddleware();
        app.UseMvc();
    }
}

HttpContext.Session is available after session state is configured.

HttpContext.Session can't be accessed before UseSession has been called.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值