• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#调用WebService时的身份验证

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

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

using System;  
using System.Data;  
using System.Configuration;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.HtmlControls;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.Services;  
using System.Web.Services.Protocols;  
///   
///MySoapHeader 的摘要说明  
///   
public class MySoapHeader:SoapHeader  
{  
    public MySoapHeader()  
    {  
        //  
        //TODO: 在此处添加构造函数逻辑  
        //  
    }
public string UserName; public string PassWord; public bool ValideUser(string in_UserName, string in_PassWord) { if ((in_UserName == "zxq") && (in_PassWord == "123456")) { return true; } else { return false; } } }

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

using System;  
using System.Collections;  
using System.Web;  
using System.Web.Services;  
using System.Web.Services.Protocols;  
 
///   
///WebService 的摘要说明  
///   
[WebService(Namespace = "http://tempuri.org/")]  
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
public class WebService : System.Web.Services.WebService  
{  
 
    public WebService()  
    {
        //如果使用设计的组件,请取消注释以下行   
        //InitializeComponent();   
    }
public MySoapHeader header; ////定义用户身份验证类变量header [WebMethod(Description = "用户验证测试")] [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头 public string HelloWorld(string contents) { //验证是否有权访问 if (header.ValideUser(header.UserName, header.PassWord)) { return contents + "执行了"; } else { return "您没有权限访问"; } } }

3.客户端 创建个Default.aspx

using System;  
using System.Configuration;  
using System.Data;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.HtmlControls;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
 
public partial class _Default : System.Web.UI.Page   
{  
    protected void Page_Load(object sender, EventArgs e)  
    {  
        com.cn1yw.WebService test = new com.cn1yw.WebService();//web引用(改成您自己的)  
        com.cn1yw.MySoapHeader Header = new com.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身份验证


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#接口发布时间:2022-07-10
下一篇:
一个小C#窗体程序发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap