webservice跟踪

最近的项目需要使用webservice,我使用php开发服务器端,当然也是使用yii提供的webservice支持。

我们的客户端是使用delphi开发的,现在两者可以很完善的交互信息了。

现在的问题是怎么去进行webservice跟踪?我也不知道啊!

强哥让我看phonebook的案例,我发现他的controller继承了一个接口IWebServiceProvider。

其实就是两个方法:beforeWebMethod和afterWebMethod。

然后在beforeWebMethod方法中写到:

if(!Yii::app()->user->isGuest || preg_match($pattern,$service->methodName)) {…}

大概意识是登陆合法用户或者安全方法可以被远程访问,关键在于Yii::app()->user啊,我不明白!

Yii::app()->user是基于Cookie的啊,如果我的客户端是delphi的话,还可以吗?

网上有关于使用Cookie来跟踪webservice的资料,但是是有条件的。

人们更多的是使用SOAP头信息来进行标示,如果客户端能够将自己的user id放入SOAP头信息中的话,

服务器端就可以读取并进行验证了,这个想法真的不错!

如果能在beforeWebMethod的方法中实现以上的方案,是否可以呢?

beforeWebMethod方法的参数是CWebService的,它可以读SOAP头信息吗?

我去研究研究,有知道的朋友,或者有更好的Webservice跟踪方法,请告诉我!

我也很想知道,怎么实现webservice的头部验证!