日期:2014-05-17  浏览次数:20959 次

WCF状态保持
string SayHello();
void Login(string UserName,string UserPwd);
上面两个方法
我的SayHello()方法只能在有登陆授权之后才能使用
我如何才能在SayHello方法中获得是谁调用的呢
我以前看到有人说在SayHello中也加个UserName,UserPwd
string SayHello(String UserName,string UserPwd);
这样每个方法都必须传入用户名密码进行登陆
我考虑到安全问题(老大要求)WCF连JavaScript都能调用 我肯定不能让他们随便调用
所以 为了老大那里过关 为了程序安全 为了我那一点小小的工资 Please!

------解决方案--------------------
要考虑JavaScript调用,一般就是RESTfull模式,使用http协议,http协议下面可以使用http头传递登录令牌信息,这个令牌信息是有Login方法返回(不能void),存储在客户端的cookies里面,设置浏览器关闭就失效。
如果客户端是应用程序,直接保存在内存中,请求的时候附加http都即可。