C# 在asmx中将对象存储到会话,并在母版页中获取此值-获取null
我尝试将对象存储到asmx web服务中的会话中C# 在asmx中将对象存储到会话,并在母版页中获取此值-获取null,c#,asp.net,.net,web-services,session,C#,Asp.net,.net,Web Services,Session,我尝试将对象存储到asmx web服务中的会话中 user = new MyUser(UserName); Session["user"] = user; 并从页面加载部分的母版页读取,但我得到空值 user = (MyUser)Session["user"]; 当我尝试使用一个简单的字符串而不是MyUser对象时,它会起作用 有什么想法吗 谢谢 谁是服务的客户,谁是页面的客户?他们在分享饼干吗 这些问题的答案非常重要,因为会话共享涉及到共享具有相同会话id的会话cookie 从您编写的
user = new MyUser(UserName);
Session["user"] = user;
并从页面加载部分的母版页读取,但我得到空值
user = (MyUser)Session["user"];
当我尝试使用一个简单的字符串而不是MyUser
对象时,它会起作用
有什么想法吗
谢谢 谁是服务的客户,谁是页面的客户?他们在分享饼干吗 这些问题的答案非常重要,因为会话共享涉及到共享具有相同会话id的会话cookie
从您编写的内容来看,这并不清楚,但很可能您只需在两个客户端(web服务客户端和页面客户端)之间共享(例如,复制)cookies即可。假设运行您的服务的过程与服务您的页面的过程相同,您需要确保WebMethod通过使用
[WebMethod(EnableSession = true)]
这是另一个答案。我找到了解决方案!
在母版页中,我试图读取page\u Load
事件上的会话,但它是错误的。
当我输入
Page_Init
事件时,它起作用了:)你的MyUser
可序列化吗?是的,它是:“[serializable]public class User”如果你确定它可以与字符串一起工作,那么我就不知道了,逻辑部分根本不起作用,它们可能有两个不同的池,会话
不会像那样共享。我会使用SQL会话或缓存系统在之间更改消息。当我尝试在asmx页面中获取此对象时,我可以,但从另一个页面中我不能…..我不喜欢在webservices中放置会话变量..虽然您是这样尝试的:HttpContext.Current.session[“user”]=user?谢谢,但我已经使用过了,会话是工作的,但是当我试图从母版页的会话中读取对象时,得到null@Jaime老兄,这不是一个“简单的答案”。。。这一个节省了我几天的工作,直到我陷入了一个问题,这个单一的属性解决了它。。。谢谢你,伙计。喜欢你的名字在法语中的意思;«J'aime
vraiment ta réponse!»(我真的很喜欢你的答案)。什么是“同一个客户”。网络浏览器?桌面应用程序?