网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

WebService身份验证

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

解决方案一:通过通过SOAP Header身份验证。

1.我们实现一个用于身份验证的类,文件名MySoapHeader.cs

MySoapHeader类继承自System.Web.Services.Protocols.SoapHeader。且定义了两个成员变量,UserName和PassWord,还定义了一个用户认证的函数ValideUser。它提供了对UserName和PassWord检查的功能

  1. using System;    
  2. using System.Data;    
  3. using System.Configuration;    
  4. using System.Web;    
  5. using System.Web.Security;    
  6. using System.Web.UI;    
  7. using System.Web.UI.HtmlControls;    
  8. using System.Web.UI.WebControls;    
  9. using System.Web.UI.WebControls.WebParts;    
  10. using System.Web.Services;    
  11. using System.Web.Services.Protocols;    
  12. /// <summary>    
  13. ///MySoapHeader 的摘要说明    
  14. /// </summary>    
  15. public class MySoapHeader:SoapHeader    
  16. {    
  17.     public MySoapHeader()    
  18.     {    
  19.         //    
  20.         //TODO: 在此处添加构造函数逻辑    
  21.         //    
  22.     }    
  23.     public string UserName;    
  24.     public string PassWord;    
  25.     public bool ValideUser(string in_UserName, string in_PassWord)       
  26.     {    
  27.         if ((in_UserName == "zxq") && (in_PassWord == "123456"))    
  28.         {    
  29.             return true;    
  30.         }    
  31.         else   
  32.         {    
  33.             return false;    
  34.         }    
  35.     }    
  36. }    

2.下面我们创建WebService.asmx WebService.cs代码如下:

  1. using System;    
  2. using System.Collections;    
  3. using System.Web;    
  4. using System.Web.Services;    
  5. using System.Web.Services.Protocols;    
  6.    
  7. /// <summary>    
  8. ///WebService 的摘要说明    
  9. /// </summary>    
  10. [WebService(Namespace = "http://tempuri.org/")]    
  11. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    
  12. public class WebService : System.Web.Services.WebService    
  13. {    
  14.    
  15.     public WebService()    
  16.     {    
  17.    
  18.         //如果使用设计的组件,请取消注释以下行     
  19.         //InitializeComponent();     
  20.     }    
  21.     public MySoapHeader header; ////定义用户身份验证类变量header    
  22.     [WebMethod(Description = "用户验证测试")]    
  23.     [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头     
  24.     public string HelloWorld(string contents)    
  25.     {    
  26.         //验证是否有权访问     
  27.         if (header.ValideUser(header.UserName, header.PassWord))    
  28.         {    
  29.             return contents + "执行了";    
  30.         }    
  31.         else   
  32.         {    
  33.             return "您没有权限访问";    
  34.         }    
  35.     }    
  36. }    

3.客户端 创建个Default.aspx
Default.aspx .cs代码

  1. using System;    
  2. using System.Configuration;    
  3. using System.Data;    
  4. using System.Web;    
  5. using System.Web.Security;    
  6. using System.Web.UI;    
  7. using System.Web.UI.HtmlControls;    
  8. using System.Web.UI.WebControls;    
  9. using System.Web.UI.WebControls.WebParts;    
  10.    
  11. public partial class _Default : System.Web.UI.Page     
  12. {    
  13.     protected void Page_Load(object sender, EventArgs e)    
  14.     {    
  15.         com.cn1yw.WebService test = new com.cn1yw.WebService();//web引用(改成您自己的)    
  16.         com.cn1yw.MySoapHeader Header = new com.cn1yw.MySoapHeader();//web引用创建soap头对象(改成您自己的)    
  17.         //设置soap头变量    
  18.         Header.UserName = "zxq";    
  19.         Header.PassWord = "123456";    
  20.         test.MySoapHeaderValue = Header;    
  21.         //调用web 方法    
  22.         Response.Write(test.HelloWorld("我是强"));    
  23.     }    
  24. }    

解决方案二:通过集成windows身份验证。

1. 将web服务程序设为集成windows身份验证 

2.客户端web引用代码

  1. Test.WebReference.Service1 wr = new Test.WebReference.Service1(); //生成web service实例 
  2. wr.Credentials = new NetworkCredential("guest","123"); //guest是用户名,该用户需要有一定的权限  
  3. lblTest.Text = wr.Add(2,2).ToString(); //调用web service方法  

该方案的优点是比较安全,性能较好,缺点是不便于移植,部署工作量大。

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师