Web Services的身份验证
来源:互联网 发布:java xmlencoder 编辑:程序博客网 时间:2024/05/16 09:45
一 引言 随着Web Service的出现,其应用也是越来越广,同时也深受开发者的喜爱。下面我将引用一个实际应用例子说明本文的目的。
假设有一个网上购物系统LiveShopping。在LiveShopping上,当客户已经选好他自己想买的商品之后,接下来就该付帐了。LiveShopping可以直接用信用卡付帐。另外假设LiveShopping的电子付款是与VeriSign合作。也就是说LiveShopping是VeriSign的一个客户。假设VeriSign提供了一些Web Services供LiveShopping使用。假设这些方法是:
1) VerifyCC(string cc_no,string expire_date,float amt)
2) ProcessCC(string transaction_type, string cc_no,string expire_date,float amt,CardHolder holder)
其中方法1验证信用卡是否有效,方法2是一个Transaction,将从信用卡上划出amt数额的交易款。
参数说明
cc_no 信用卡卡号码
expire-date 有效日期
amt 金额
transaction_type 事务类型,比如说sale, force等等
holder 持卡人信息
这里有个问题,如果VeriSign没有身份验证,那怎么知道客户是LiveShopping。换句话说,如果没有身份验证,每个人都可以使用这两个方法。所以身份验证必不可少。
二 实现身份验证 身份验证有很多方法,这里将介绍一种非常简单的方法,并且在.NET中实现。
可以应用WebService的Soap 头实现。也就是说可以利用Soap头传递验证的信息,比如用户名,密码等等。
首先从客户端看,可以对其应用有一个直观的了解。代码如下
private void Button1_Click(object sender, System.EventArgs e)
{
AuthHeader auth=new AuthHeader();
WebServices webService=new WebServices();
auth.UserName=this.txtName.Text.Trim();
auth.Password=this.txtPwd.Text.Trim();
webService.authHeader=auth;
string rtStr=webService.GetPassword();
this.txtReturn.Text=rtStr;
}
解释一下,AuthHeader为前面提及的Soap头的实现,其定义如下:
public class AuthHeader:SoapHeader
{
public string UserName;
public string Password;
}
继续看看WebServices是如何实现的,代码如下:
public class WebServices : System.Web.Services.WebService
{
public AuthHeader authHeader;
[SoapHeader("authHeader")]
[WebMethod( Description="This method will return the sensitive data")]
public string GetPassword()
{
if(authHeader.UserName.Equals("user") &&authHeader.Password.Equals("pwd"))
{
return "pwd";
}
return "Invalid Authentication ";
}
}
可以发现,加入了一个AuthHeader公共成员。这个可以供调用者传输验证信息。另外重要的一点是SoapHeader属性,它明确了Soap头。具体可以参见MSDN。
在GetPassword()中,可以加入你的代码。它第一步就是验证信息,如果验证成功,继续完成你的事情,如果不成功,则退出。
三 进一步 如果为了使应用更加安全,我们可以对数据进行加密,比如说我们可以对验证信息进行加密。可以在客户端进行加密,然后到了server端进行解密。加密和解密是另外一个话题,在这里不多假描述。
从性能方面来看,加密解密这个过程将会降低性能。所以一般可以折中考虑,只对于一些敏感的数据进行加密和解密,比如说密码等。除非是一些高安全性的应用,这时就另当别论了。
0 0
- Web Services的身份验证
- Web Services的身份验证
- Web Services的身份验证
- web services用soap头实现身份验证
- Web Services的魅力
- web services的基本概念
- web services的基本原理
- Web Services的基本原理
- web services的基本原理
- Web Services的基本原理
- 常用的web services
- Web Services的基本原理
- 具有身份验证的web.config
- SharePoint Web Service的身份验证
- SharePoint Web Service的身份验证
- Web身份验证
- IssueVision与TaskVision 使用技术比较--XML Web services自定义身份验证数据
- Web Services的简单介绍
- 设置滚动条样式
- FCKEditor使用RequiredFieldValidator验证时必须点击两次的解决办法
- 使用CSS实现圆角Div(无图片)
- 【总结】IE和Firefox的Javascript兼容性总结
- SQL Server 2005 创建自动备份的操作步骤
- Web Services的身份验证
- 图片自动大小
- VS2008 AJAX扩展控件包AjaxControlToolkit介绍
- jquery官方网地址
- 实战:当jquery遇上了json
- JQuery读取Json数据之解析多维Json数据格式
- 易用的JQuery上传插件Uploadify
- ERP系统
- jquery uploadify插件可选参数的详细介绍