本文将介绍两种方法实现Web Service身份验证,方法一是通过通过SOAP Header身份验证,另一种是通过集成windows身份验证。
Web Service身份验证解决计划一:经过经过SOAP Header身份验证。
1.咱们完成一个用于身份验证的类,文件名MySoapHeader.cs
MySoapHeader类承继自System.Web.Services.Protocols.SoapHeader。且界说了两个成员变量,UserName和PassWord,还界说了一个用户认证的函数ValideUser。它供给了对UserName和PassWord查看的功用
- usingSystem;
- usingSystem.Data;
- usingSystem.Configuration;
- usingSystem.Web;
- usingSystem.Web.Security;
- usingSystem.Web.UI;
- usingSystem.Web.UI.HtmlControls;
- usingSystem.Web.UI.WebControls;
- usingSystem.Web.UI.WebControls.WebParts;
- usingSystem.Web.Services;
- usingSystem.Web.Services.Protocols;
- ///
- ///MySoapHeader的摘要阐明
- ///
- publicclassMySoapHeader:SoapHeader
- {
- publicMySoapHeader()
- {
- //
- //TODO:在此处增加结构函数逻辑
- //
- }
- publicstringUserName;
- publicstringPassWord;
- publicboolValideUser(stringin_UserName,stringin_PassWord)
- {
- if((in_UserName=="zxq")&&(in_PassWord=="123456"))
- {
- returntrue;
- }
- else
- {
- returnfalse;
- }
- }
- }
2.下面咱们创立WebService.asmx WebService.cs代码如下:
- usingSystem;
- usingSystem.Collections;
- usingSystem.Web;
- usingSystem.Web.Services;
- usingSystem.Web.Services.Protocols;
- ///
- ///WebService的摘要阐明
- ///
- [WebService(Namespace="http://tempuri.org/")]
- [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
- publicclassWebService:System.Web.Services.WebService
- {
- publicWebService()
- {
- //假如运用规划的组件,请撤销注释以下行
- //InitializeComponent();
- }
- publicMySoapHeaderheader;////界说用户身份验证类变量header
- [WebMethod(Description="用户验证测验")]
- [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头
- publicstringHelloWorld(stringcontents)
- {
- //验证是否有权拜访
- if(header.ValideUser(header.UserName,header.PassWord))
- {
- returncontents+"执行了";
- }
- else
- {
- return"您没有权限拜访";
- }
- }
- }
3.客户端 创立个Default.aspx
- Default.aspx.cs代码
- usingSystem;
- usingSystem.Configuration;
- usingSystem.Data;
- usingSystem.Web;
- usingSystem.Web.Security;
- usingSystem.Web.UI;
- usingSystem.Web.UI.HtmlControls;
- usingSystem.Web.UI.WebControls;
- usingSystem.Web.UI.WebControls.WebParts;
- publicpartialclass_Default:System.Web.UI.Page
- {
- protectedvoidPage_Load(objectsender,EventArgse)
- {
- com.cn1yw.WebServicetest=newcom.cn1yw.WebService();//web引证(改成您自己的)
- com.cn1yw.MySoapHeaderHeader=newcom.cn1yw.MySoapHeader();//web引证创立soap头目标(改成您自己的)
- //设置soap头变量
- Header.UserName="zxq";
- Header.PassWord="123456";
- test.MySoapHeaderValue=Header;
- //调用web办法
- Response.Write(test.HelloWorld("我是强"));
- }
- }
Web Service身份验证解决计划二:经过集成windows身份验证。
1. 将Web服务程序设为集成windows身份验证
2.客户端web引证代码
- Test.WebReference.Service1wr=newTest.WebReference.Service1();//生成webservice实例
- wr.Credentials=newNetworkCredential("guest","123");//guest是用户名,该用户需求有必定的权限
- lblTest.Text=wr.Add(2,2).ToString();//调用webservice办法
该计划的长处是比较安全,功能较好,缺陷是不便于移植,布置作业量大。
【修改引荐】
- ASP.NET运用Web Service上传文件
- JDK 6.0中web service的运用浅析
- MyEclipse开发和测验Web Service实例详解
- 在Spring中XFire构建Web Service
- Spring Web Services结构入门研讨
转载请说明出处
知优网 » 两种办法完成Web Service身份验证(web服务器的身份验证方式)
知优网 » 两种办法完成Web Service身份验证(web服务器的身份验证方式)