ASP.NET MVC网站部分SSL身份验证cookie未在请求中提交

我正在尝试制作一个可以拥有使用http和https的网站的POC.所以我的主页中有一个控件,如果用户已经过身份验证,则需要信息.为此,我想使用HttpContext.Current.User.Identity.IsAuthenticated.如果经过身份验证,则显示已通过身份验证的用户的信息,如果未显示登录控件.

要对控件进行身份验证,请对具有[RequireHttps]属性的Login操作发出AJAX POST请求. AJAX请求中使用的URL是:

$.ajax({
    type: 'POST',
    url: '@Url.Action("ModalLogIn", "Authentication", null, "https", Request.Url.Host + ":44300")',

顺便说一句,我正在使用启用了SSL的VS2013 IIS Express.

正如您在我的AJAX请求中看到的那样,我正在使用HTTPS in action url.
使用SSL向服务器发出请求,并且响应成功.

问题是在后续请求中,ASPXAUTH cookie未在请求标头中传递.因此服务器无法获取用户身份验证信息.后续请求是在没有SSL的情况下进行的,是简单的HTTP请求.

我知道在安全方面,身份验证仍然不安全,因为我希望通过HTTP传递ASPXAUTH,但就像我说的是POC,我想看看是否可以使用HTTPS和所有的方式进行简单的身份验证请求其他人使用HTTP.

根据要求,这是响应标题:

Access-Control-Allow-Orig...    *
Cache-Control   private
Content-Length  15
Content-Type    application/json; charset=utf-8
Date    Sat, 26 Oct 2013 18:57:55 GMT
Server  Microsoft-IIS/8.0
Set-Cookie  ASP.NET_SessionId=j2a53htev0fjp1qq4bnoeo0l; path=/; HttpOnly 
ASP.NET_SessionId=j2a53htev0fjp1qq4bnoeo0l; path=/; HttpOnly 
IAC.CurrentLanguage=en; expires=Sun, 26-Oct-2014 19:57:55 GMT; path=/ 
.ASPXAUTH=730DEDBFD2DF873A5F2BD581AA0E25B685CAD12C26AEA63AD82484C932E26B617687A05BB403216CC5EFCF799970810059F9CA2CF829F953580AF81FF48102003C0129AB04424F0D011A733CAAF1DE00688E5A4C93DEA97338DD2B5E7EE752F3761A470D52449BEBCA74098912DE37AA8C1E293B1C5D44EB1F9E9384DAAEF289; path=/; HttpOnly
    X-AspNet-Version    4.0.30319
    X-AspNetMvc-Version 3.0
X-Powered-By    ASP.NET
X-SourceFiles   =?UTF-8?B?QzpcTXkgRGF0YVxCaXRidWNrZXRcaWFjLXdlYnNpdGVcaW1wbGVtZW50YXRpb25cZG90bmV0XElBQy5XZWJcQXV0aGVudGljYXRpb25cTW9kYWxMb2dJbg==?=

最佳答案 可能是在您设置auth cookie时,它被标记为“安全”.

使用Chrome开发者工具,点击“资源”,然后点击Cookie.在“安全”列下,检查cookie是否已标记.如果是,则表示浏览器不会使用非安全连接发送auth cookie.

点赞