在写webservice 时,最痛苦的就是身份验证了,用什么都不合适。开始觉着用集成身份验应该不错了,但权限和用户又都是windows自已的程序没法控制,最后几经周折,要网上找到这个例子(出处找不到了,如果作者看到可以说一声,我再加上),感觉实现起来比较好,是能过 重写 IHttpModule实现截取用户名自定义自份验证的。这样就可以自已定义集成身份的用户的名称,角色之类的,再把web方法做为规则名称,用企业类库里的安全模块来进行验证,自认为是个比较好的办法了。(有一个缺点就是在vs里加web引用由于需要验证把以添加web引用不好使。最后用wsdl加用户名密码的方式好使了。
digest.zip 以下是用wsdl添加引用的bat文件代码(其实这个msdn上就有,放在这里只是为了给哪些不想查msdn的人一个方便)。
![](/Images/OutliningIndicators/ContractedBlock.gif)
wsdl
visualStudioDir=D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\
set namespace=Umen.Common.WebRef
set outDir=d:\
set outFileName=Reference.cs
set username=ylx
set password=yan.lixin
set webServiceUri=http://10.0.0.19:8082/WebServiceUmenMembershipOP.asmx
echo %visualStudioDir%wsdl.exe /namespace:%namespace% /out:%outDir%%outFileName% /username:%username% /password:%password% %webServiceUri%
@call "%visualStudioDir%wsdl.exe" /namespace:Umen.Common.WebRef /out:Reference.cs /username:ylx /password:yan.lixin http://10.0.0.19:8082/WebServiceUmenMembershipOP.asmx