我在Azure上编写了一个ASP.NET 3.5站点,我正在尝试允许其通过身份验证和匿名用户配置文件。经过身份验证的配置文件很好但是如果我没有登录,我会在SetCookie指令中看到发送的.ASPXANONYMOUS
cookie以及配置文件信息。如果我然后关闭浏览器会话并再次启动,我会立即从服务器发送一个SetCookie指令,将.ASPXANONYMOUS
cookie设置为新值:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
Set-Cookie: .ASPXANONYMOUS=dTJEJCr...; expires=Fri, 12-Mar-2010 21:22:38 GMT; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Wed, 10 Feb 2010 21:22:41 GMT
Content-Length: 3146
因此会话之间的个人资料信息丢失。我不明白为什么会发生这种情况 - 我认为保留cookie值将是重点。我的web.config
有这个:
<!-- We allow anonymous users to have a profile using ASP.Net anonymous profiles -->
<anonymousIdentification
enabled="true"
cookieless="UseDeviceProfile"
cookieName=".ASPXANONYMOUS"
cookieTimeout="43200"
/>
我需要做些什么才能在会话中保留cookie以允许正确的匿名配置文件?
答案 0 :(得分:1)
我意识到9个月之后海报可能已经开始了。我也意识到我要提供的答案更多的是解决方案而不是解决方案。我也没有做任何Azure开发,我可能完全脱离基础;然而,没有回答的问题让我感到烦恼 - 所以这就是我发现的。
如果您使用您的真实IP ,而不是 127.0.0.1,您的SessionID将在请求中保留。
答案 1 :(得分:0)
我可以确认PhillFox的评论
使用formsauthentication时,ASP.NET_SessionID cookie var会在会话中创建值,以便后续请求可以在回发之间保留。
我检查了所有内容,之所以没有发生这种情况,正是因为我指的是127.0.0.1,一旦我将其更改为有效的IP地址,cookie ASP.NET_SessionID和ASPXANONYMOUS就会持续存在。