ASP.NET Core MVC 会话相同的站点 URL

Posted

技术标签:

【中文标题】ASP.NET Core MVC 会话相同的站点 URL【英文标题】:ASP.NET Core MVC session same site URL 【发布时间】:2022-01-18 07:28:27 【问题描述】:

我有 2 个 ASP.NET Core MVC 应用程序在一个 IP 上的不同端口上运行(例如 App1:192.168.0.1:8000 和 App2:192.168.0.1:8001)。

登录App1再登录App2后,App1会为下一个请求创建一个新的SessionId,所以它无法获取旧的会话来获取认证数据。

我在startup.cs中是这样设置的

public void ConfigureServices(IServiceCollection services) 

    ....
    services.Configure<CookiePolicyOptions>(options =>
    
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    );
    ....
    services.AddDistributedMemoryCache();           
    services.AddSession(options =>
    
        options.IdleTimeout = TimeSpan.FromMinutes(60);
        options.Cookie.HttpOnly = true;
        options.Cookie.IsEssential = true;
     );


public void Configure(IApplicationBuilder app, IHostingEnvironment env) 

    ....    
    app.UseCookiePolicy();
    app.UseSession();
    ....

【问题讨论】:

请尝试为CookieSessionCookieAuthentication 使用不同的名称,您的两个应用程序可能会覆盖彼此相同的cookie。 @GordonKhanhNg。是的,我刚刚发现并回到这里查看您的答案,无论如何谢谢:))) 【参考方案1】:

发现我没有为每个 App 设置 cookie 名称,所以它像 @GordonKhanhNg 一样覆盖了其他 cookie。刚才说了。

services.AddSession(options => 
    ....
    options.Cookie.Name = ".App1.Session";
    ....
);

【讨论】:

以上是关于ASP.NET Core MVC 会话相同的站点 URL的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure 中托管的 ASP.NET Core 5.0 MVC 站点调用 API/服务的间歇性套接字异常

如何使用 ASP.NET Core RC2 MVC6 和 IIS7 获取当前 Windows 用户

将 ant 性能分析器附加到 asp.net-mvc 站点失败

ASP.NET Core MVC:设置身份 cookie 过期

在 ASP.NET Core 站点中实现 Blazor - 组件不在视图中呈现

ASP.NET MVC 中的项目布局和站点结构