C# 为什么每次访问同一页ASP.Net时HttpContext.Current.Session都在更改
下面是一个场景 我有一个页面,比如login.aspx有一个名为login的按钮,当我检查SessionID时,该按钮的点击事件会显示一个特定的值,例如“a” 现在我正在调用某个外部页面,该页面然后再次调用此页面 例如,一旦我点击登录按钮,我就会调用一个twitter应用程序,当用户授权它时,我会被重定向回同一个页面,但现在当我访问SessionID时,它是一个新IDC# 为什么每次访问同一页ASP.Net时HttpContext.Current.Session都在更改,c#,asp.net,twitter,C#,Asp.net,Twitter,下面是一个场景 我有一个页面,比如login.aspx有一个名为login的按钮,当我检查SessionID时,该按钮的点击事件会显示一个特定的值,例如“a” 现在我正在调用某个外部页面,该页面然后再次调用此页面 例如,一旦我点击登录按钮,我就会调用一个twitter应用程序,当用户授权它时,我会被重定向回同一个页面,但现在当我访问SessionID时,它是一个新ID 我不知道为什么会发生这种情况,我只想拥有相同的SessionID您没有多个web服务器,是吗 如果是这样,并且您没有使用共享会话
我不知道为什么会发生这种情况,我只想拥有相同的SessionID您没有多个web服务器,是吗 如果是这样,并且您没有使用共享会话状态提供程序,那么您可能会看到这种行为 编辑 好的,下一个问题 Twitter授权返回的URL是否使用完全相同的域名 例如,如果您的应用程序正在上运行,并且返回的URL为 编辑2:是吗 当您从127.0.0.1上的Twitter应用重定向回时,ASP.NET会话cookie不会传递回web服务器,因为域不同 您需要运行应用程序的域来匹配Twitter回调URL
将Twitter回调URL重新配置为localhost:1234,我认为您应该可以。是否向会话添加任何数据?您需要这样做才能使会话ID“粘住”。不,我正在我的开发人员计算机上运行此程序,默认服务器是Visual Studio IDE,开发人员计算机正在运行,Twitter回调URL是,因为Twitter不接受localhost作为URL的有效输入。是否有任何变通方法,以便我可以在dev env中测试相同的方法。在实际检查生产/现场环境之前,请以另一种方式进行检查。让应用程序在127.0.0.1:1234运行是的。如果会话中没有存储任何内容,则每次都会获得一个新id+1.