版权声明:本文为Boyd Wang原创文章,转载时请注明作者及本文链接
本文链接:http://www.boydwang.com/2014/03/add-authorization-to-net-webservice-api/

WebService发布之后,任何用户都可以对其进行调用,为了防止一些接口被匿名用户访问,可以对.net webservice实现调用认证,把要认证的信息填入SoapHeader中,在调用Api时一并发给服务端,服务端取出认证信息进行验证,如果通过,则继续执行,如果不通过,则返回错误信息,这样就达到了验证调用者身份的效果,下面来说说具体做法:

假设现在我们有一个WebService,里面有一个HelloWorld方法,

首先自定义一个消息类,用于存放验证信息,继承自SoapHeader。

接着我们在WebService代码里加入一个AuthorizeHeader实例,用于接收客户端传递过来的认证信息。注意一定要是public的,不然外部访问不到会报错。

然后在刚才的HelloWorld方法上加入一个新的Atrribute

我们看一下SoapHeader构造方法的说明,有这么一段:

可以看到叫memberName的属性将会被赋值为SOAP header的内容,这样我们上面[SoapHeader(“authHeader”)]里的authHeader就可以拿到SoapHeader的值了。

拿到验证内容,现在我们来加一个验证方法:

改造一下HelloWorld方法:

接下来用客户端测试一下:

运行结果:
authSoap

完整代码地址:
http://pan.baidu.com/s/1eQ9Ujrs



打赏
Categories: C#程序开发

Boyd Wang

想给自己贴上各种NB的头衔,NB程序员,NB自由职业者,最后发现自己其实是个Newbie,没办法,慢慢来吧

Leave a Reply

Your email address will not be published. Required fields are marked *

无觅相关文章插件,快速提升流量