gpt4 book ai didi

asp.net - MVC5 用户未在 http 下进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:10 24 4
gpt4 key购买 nike

用户未被识别为来自 http 请求页面的身份验证。

我最近在我的网站上安装了 ssl。如果用户通过身份验证,我会在我的母版页上显示用户名。我注意到,当我使用 http 导航到该页面时,我总是被注销。当我导航到登录页面时,我立即被正确识别。好像我的网站只能从 https 请求中读取身份验证 cookie。

我正在使用 ASP.Net MVC 5。我正在使用(大部分)默认的 Owins 身份验证堆栈。

这是正常行为吗?在非 ssl http 请求下,我可以做些什么来识别我的用户?

最佳答案

详情可以在这个页面找到: http://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/

我从这里复制了该页面的部分文本:

============================================= ======================

默认情况下(可能是为了简单和易于开发)如果传入请求是 SSL,则 cookie 仅使用安全标志(即需要 SSL)发出。当您将应用程序发布到生产环境时,这是一个需要更改的重要设置。此设置配置了一个枚举:

public enum CookieSecureOption
{
SameAsRequest,
Never,
Always
}

并且将完成此配置更改(注意 CookieSecure 标志):

public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
CookieSecure = CookieSecureOption.Always
});
}

=================================

我已经复制了这个 CookieSecure 属性的文档如下:


确定 cookie 是否只应在 HTTPS 请求上传输。如果执行登录的页面也是 HTTPS,则默认设置将 cookie 限制为 HTTPS 请求。如果您有一个 HTTPS 登录页面并且您网站的某些部分是 HTTP,您可能需要更改此值。

因此,我将 CookieSecure 的值更改为 CookieSecure = CookieSecureOption.Never,这解决了我的问题。

关于asp.net - MVC5 用户未在 http 下进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22085677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com