首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC5用户未在http下进行身份验证

MVC5用户未在http下进行身份验证
EN

Stack Overflow用户
提问于 2014-02-28 03:36:48
回答 1查看 1.1K关注 0票数 2

用户不能从http请求的页面中识别为身份验证。

我最近在我的网站上安装了ssl。在我的主页上,如果用户经过身份验证,我就会显示他们的用户名。我注意到当我使用http导航到页面时,我总是被注销。当我导航到页面中的标志时,我马上就被正确识别了。就好像我的网站只能从https请求中读取身份验证cookie一样。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 02:02:25

详细信息可在本页中找到:http://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/

我在这里复制了这一页的部分文本:

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

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

代码语言:javascript
复制
public enum CookieSecureOption
{
   SameAsRequest,
   Never,
   Always
}

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

代码语言:javascript
复制
public void ConfigureAuth(IAppBuilder app)
{
   app.UseCookieAuthentication(new CookieAuthenticationOptions
   {
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
      LoginPath = new PathString("/Account/Login"),
      CookieSecure = CookieSecureOption.Always
   });
}

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

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

确定cookie是否只应在HTTPS请求上传输。默认情况下,如果执行SignIn的页面也是HTTPS,则将cookie限制为HTTPS请求。如果页面中有HTTPS签名,并且站点的部分是HTTP,则可能需要更改此值。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22085677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档