在多个"本地主机"Asp.Net 核心站点上进行基于 Cookie 的身份验证



场景只是开发计算机上的问题。

我在"localhost"下在我的开发机器上运行多个不同且完全独立的 ASP.NET Core 2.2 项目。

成功验证并登录一个项目后,我将无法再登录到其他项目。 我假设这与身份验证饼干有关。

所有项目都具有相同的基本身份验证。

    services.AddAuthentication();
    services.ConfigureApplicationCookie(opt =>
    {
        opt.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.None;
        opt.Cookie.HttpOnly = true;                
        opt.Cookie.Expiration = TimeSpan.FromHours(4);
        opt.ExpireTimeSpan = TimeSpan.FromHours(4);
    });

登录调用成功:

result = await _signInManager.PasswordSignInAsync(portal.ID, model.Username, model.Password, model.RememberMe, true, loggedInUser);

但是,一旦用户被重定向到需要身份验证的主页,我在调试输出中看到以下内容:

Microsoft.AspNetCore.Authorization.DefaultAuthorizationService: Information: Authorization failed.

。用户被踢回登录页面。

有没有办法解决这个问题?

我会考虑在不同的域下运行您的网站,然后将域映射到主机文件中的 localhost(或者更确切地说,127.0.0.1(。

此问题解释了技术:将子域添加到本地主机 URL

以下是一篇解释不同操作系统的主机文件的文章:https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/

问题解决了。

services.ConfigureApplicationCookie(opt =>
{
    opt.Cookie.Name = "Unique Value Per App";
});

我所要做的就是在SO上发帖,问题就解决了!

相关内容

  • 没有找到相关文章

最新更新