问题描述
silverlightwcfria如何使用类似session去读取信息。在线等
解决方案
解决方案二:
跟桌面一样。
解决方案三:
第一次客户端请求的时候随机产生一个token,然后客户端每次访问都在http请求头上包含它。服务器上用静态对象维护一个token-dictionary的字典(字典的字典),根据客户端的请求查token中的字典,这个字典就相当于session。
解决方案四:
偷懒的情况下,加这个标记(外加设置webconfig里相应键值)也是可以的,但限制显而易见,你的session只能在Asp.nethost的方式下使用。不过既然是silverlight,那么wcf通常应该也是host在iis上的[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
解决方案五:
我虽然回答“与桌面一样”,其实是希望lz先学习一下桌面程序如何访问wcf的。因为这是最简单的情形。根本不考虑webSession。但是其实,silverlight使用所宿主的浏览器来访问web服务器,跟asp.net完全一样,都会传送浏览器的信息的,包括SessionID(前提是你的asp.net程序设置了SessionID),甚至会将上一次WCF服务返回的内容在客户端缓存起来(尽管wcf不会利用这些)。你自己可以测试一下。不过一个设计WCF服务的人,抛开silverlight客户端,你还在什么应用上在WCF中用过Session?一般来说,编写WCF就不应该考虑什么Session集合。
解决方案六:
跟asp.net完全一样-->跟javascript的环境完全一样
时间: 2024-10-18 10:28:02