2010-02-10 71 views
4

我有一个写在Azure之上的ASP.NET 3.5网站,我试图允许这两个用户身份验证和匿名用户配置文件。已验证的配置文件正常工作。但是如果我没有登录,我会看到.ASPXANONYMOUS cookie与SetCookie指令中的配置文件信息一起发送。如果我再关闭浏览器会话,并重新启动,我看到一个setCookie方法指令从服务器发送降权的路程,.ASPXANONYMOUS的cookie设置为一个新值:.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来允许适当的匿名配置文件?

+1

嗯...测试这个更多一点,发现这种行为只发生在我在VS上运行在127.0.0.1上,即在开发结构中。它在云结构上正常工作。因为我花了很多时间“调试”生产中没有发生的事情,所以感到烦恼。我仍然想知道为什么在开发结构中发生这种情况。谢谢。 – 2010-02-10 23:38:44

+0

您发现的127.0.0.1听起来像是我的问题:http://stackoverflow.com/questions/4226568/why-do-entries-in-the-host-file-create-new-sessionids-for-each-request(为什么主机文件中的条目为每个请求创建新的SessionID)。我怀疑一个问题的接受答案也会解决另一个问题。我在WinXP上,你在开发什么平台? – PhillFox 2010-12-01 18:15:38

回答

1

我意识到9个月后海报可能已经移动了。我也意识到,我即将提供的答案更多的是解决方案。我也没有做过任何Azure开发,我可能完全脱离基础;然而,没有回答的问题会影响我 - 所以这里是我发现的。

如果使用你的真实IP而不是 127.0.0.1,你的SessionID跨请求保留。

0

我可以证实PhillFox的评论

当使用formsauthentication的ASP.NET_SessionID饼干变种会在会话中的值,以便后续的请求可以回发之间依然存在。

我检查了一切,这并不是因为我发生的原因,正是因为我指的是127.0.0.1,只要我将其更改为有效的IP地址,ASP.NET_SessionID和ASPXANONYMOUS即可保留Cookie。