标签:
Web Service是政府,企业,个人提供的在线应用服务,其他公司、软件都能通过Internet来访问并使用服务。针对于有些公司某些数据只允许授权的企业或人使用,所以我们需要进行身份验证
第一种方式:在Web Service引入SoapHeader
1.如下图,我们实现一个用于实现身份验证的类MySoapHeader,定义两个成员变量(UserName和Password),定义函数ValideUser用来检测使用服务的程序的Soap标头的数据是否被授权使用服务
//实现一个用来验证身份的类
public class MySoapHeader:SoapHeader
{
public MySoapHeader()
{
//
// TODO:在此添加构造函数
//
}
public string UserName;//用户名
public string Password;//密码
/// <summary>
/// 判断用户名和密码是否正确
/// </summary>
/// <param name="username"></param>
/// <param name="password"></param>
/// <returns></returns>
public bool ValideUser(string username, string password)
{
if ((username == "admin") && (password == "admin"))
{
return true;
}
else
{
return false;
}
}
}
2.创建Verification.asmx。
public class Verification : System.Web.Services.WebService
{
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.创建一个客户端—WebForm的页面
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
VerificationServer.Verification verTest = new VerificationServer.Verification();//添加web引用
VerificationServer.MySoapHeader header = new VerificationServer.MySoapHeader();//web引用创建soap头对象
//设置soap头部变量
header.UserName = "admin"; //用户名
header.Password = "admin"; //密码
verTest.MySoapHeaderValue = header;
Response.Write(verTest.HelloWorld("我是老王"));
}
}
标签:
原文地址:http://www.cnblogs.com/shikangjie/p/5691578.html