Cookie 未保存在浏览器 Cookie 中:表单身份验证
Cookie is not saved in Browser Cookie : Forms Authentication
我遇到了奇怪的问题。我在 ASP.NET 中使用表单身份验证。验证用户后,我使用以下代码。
FormsAuthentication.SetAuthCookie(requestInfo.Username, requestInfo.RememberMe);
在浏览器中,我可以得到 Set-Cookie header。
Set-Cookie: .ASPXAUTH=3FEC1547348829DD49CC997DCE03489A6CB8B78AF6681A34DB270F4897F8E8A909CA063651252246164256C317AEF4C702DCC0877C3926FF754EF1254FDF137913178B87FEAAE4067B664CD8E56B908CDE8928D570AF81DA6720FC129E8A24F9C2A4CE53B1D95E58E910A1ABABAC7F9E7EB3FBA65C956B8F38BDBEF5111F51F15490CB5A07CEF3996C8A78B5430DB973C43BE0DA3F5386D1697A24B1486C; expires=Thu, 23-Apr-2020 09:10:21 GMT; path=/; HttpOnly
但是浏览器的Cookie 中没有保存Cookie。我已经尝试使用 localhost、127.0.0.1 和 192.168.0.5
请高手帮帮我。
更新:我添加了域 livesite.com。但还是不行。
.ASPXAUTH=5D2D5D5409720F7AEC0875D30FEB852961EBDE014CDA41E2FC5B7A44CBE7852D6532AB19B0887D1E12893E10F42A204B5486DF814DE5F9B712CA3FD23729DC7A2E5E4CA9B4273459DCB792175AA770386164A9575A63C78A75CFADF20C6BC1C58681E8F3F2CA33F91037FCD8F767E6B2162AF0240A5C6F4B2F9638E7A82E0C8B7B3F14E7FD7DD5BBBE6ECB086A8EF21E1736D6AE2C302E047CB1D44EB18; domain=.livesite.com; path=/; HttpOnly
<authentication mode="Forms">
<forms timeout="240" domain="livesite.com" requireSSL="false"/>
</authentication>
主机文件:
127.0.0.1 livesite.com
网站正在运行:
http://livesite.com:9000/#Site
API 是 运行:
http://livesite.com:1534
我也在 Mozilla 中测试过。但是 cookie 不会保存在浏览器缓存中。
检查 web.config
上的设置是否正确。通常,如果您没有设置 domain
,或者您设置的 requireSSL
与您调用的不同,您可能无法设置 cookie。
<authentication mode="Forms">
<forms domain="example.com" requireSSL="true" name=".myauth" />
</authentication>
现在,域名最好不要在前面加上子域名 www.
,因为您可以为任何名称设置它。我希望你已经设置了一些本地 iis
并且你使用本地 dns 作为名称。
requireSSL="true"
表示只能设置https
cookie。如果您没有测试用的ssl,请将其关闭。
我遇到了奇怪的问题。我在 ASP.NET 中使用表单身份验证。验证用户后,我使用以下代码。
FormsAuthentication.SetAuthCookie(requestInfo.Username, requestInfo.RememberMe);
在浏览器中,我可以得到 Set-Cookie header。
Set-Cookie: .ASPXAUTH=3FEC1547348829DD49CC997DCE03489A6CB8B78AF6681A34DB270F4897F8E8A909CA063651252246164256C317AEF4C702DCC0877C3926FF754EF1254FDF137913178B87FEAAE4067B664CD8E56B908CDE8928D570AF81DA6720FC129E8A24F9C2A4CE53B1D95E58E910A1ABABAC7F9E7EB3FBA65C956B8F38BDBEF5111F51F15490CB5A07CEF3996C8A78B5430DB973C43BE0DA3F5386D1697A24B1486C; expires=Thu, 23-Apr-2020 09:10:21 GMT; path=/; HttpOnly
但是浏览器的Cookie 中没有保存Cookie。我已经尝试使用 localhost、127.0.0.1 和 192.168.0.5
请高手帮帮我。
更新:我添加了域 livesite.com。但还是不行。
.ASPXAUTH=5D2D5D5409720F7AEC0875D30FEB852961EBDE014CDA41E2FC5B7A44CBE7852D6532AB19B0887D1E12893E10F42A204B5486DF814DE5F9B712CA3FD23729DC7A2E5E4CA9B4273459DCB792175AA770386164A9575A63C78A75CFADF20C6BC1C58681E8F3F2CA33F91037FCD8F767E6B2162AF0240A5C6F4B2F9638E7A82E0C8B7B3F14E7FD7DD5BBBE6ECB086A8EF21E1736D6AE2C302E047CB1D44EB18; domain=.livesite.com; path=/; HttpOnly
<authentication mode="Forms">
<forms timeout="240" domain="livesite.com" requireSSL="false"/>
</authentication>
主机文件:
127.0.0.1 livesite.com
网站正在运行:
http://livesite.com:9000/#Site
API 是 运行:
http://livesite.com:1534
我也在 Mozilla 中测试过。但是 cookie 不会保存在浏览器缓存中。
检查 web.config
上的设置是否正确。通常,如果您没有设置 domain
,或者您设置的 requireSSL
与您调用的不同,您可能无法设置 cookie。
<authentication mode="Forms">
<forms domain="example.com" requireSSL="true" name=".myauth" />
</authentication>
现在,域名最好不要在前面加上子域名 www.
,因为您可以为任何名称设置它。我希望你已经设置了一些本地 iis
并且你使用本地 dns 作为名称。
requireSSL="true"
表示只能设置https
cookie。如果您没有测试用的ssl,请将其关闭。