Web服务中使用Soap标头自定义身份验证和授权
2006-06-05 17:38
585 查看
使用 Soap 标头自定义身份验证和授权
Windows 身份验证非常适合 Intranet 方案,这种情况下您是对自己的域中的用户进行身份验证。然而在 Internet 上,您可能需要对 SQL 数据库执行自定义身份验证和授权。在这种情况中,应向服务传递自定义凭据(如用户名和密码),并让服务自己处理身份验证和授权。
将额外的信息连同请求一起传递给 XML Web 服务的简便方法是通过 SOAP 标头。为此,需要在服务中定义一个从 SOAPHeader 派生的类,然后将服务的公共字段声明为该类型。这在服务的公共合同中公开,并且当从 WebServiceUtil.exe 创建代理时可由客户端使用,如下例所示:
using System.Web.Services;
using System.Web.Services.Protocols;
// AuthHeader class extends from SoapHeader
服务中的每个 WebMethod 都可以使用 SoapHeader 自定义属性定义一组关联的标头。默认情况下,标头是必需的,但也可以定义可选标头。SoapHeader 属性指定公共字段的名称或者 Client 或 Server 类的属性(本标题中称为 Headers 属性)。在为输入标头调用方法前,WebService 设置 Headers 属性的值;而当方法为输出标头返回时,WebService 检索该值。有关输出标头或可选标头的更多信息,请参阅 .NET 框架 SDK 文档。
[WebMethod(Description="This method requires a custom soap header set by the caller")]
[SoapHeader("sHeader")]
HeaderService h = new HeaderService();
AuthHeader myHeader = new AuthHeader();
myHeader.Username = "JohnDoe";
myHeader.Password = "password";
h.AuthHeader = myHeader;
String result = h.SecureMethod();
参见:http://chs.gotdotnet.com/quickstart/aspplus/doc/secureservices.aspx
Windows 身份验证非常适合 Intranet 方案,这种情况下您是对自己的域中的用户进行身份验证。然而在 Internet 上,您可能需要对 SQL 数据库执行自定义身份验证和授权。在这种情况中,应向服务传递自定义凭据(如用户名和密码),并让服务自己处理身份验证和授权。
将额外的信息连同请求一起传递给 XML Web 服务的简便方法是通过 SOAP 标头。为此,需要在服务中定义一个从 SOAPHeader 派生的类,然后将服务的公共字段声明为该类型。这在服务的公共合同中公开,并且当从 WebServiceUtil.exe 创建代理时可由客户端使用,如下例所示:
using System.Web.Services;
using System.Web.Services.Protocols;
// AuthHeader class extends from SoapHeader
服务中的每个 WebMethod 都可以使用 SoapHeader 自定义属性定义一组关联的标头。默认情况下,标头是必需的,但也可以定义可选标头。SoapHeader 属性指定公共字段的名称或者 Client 或 Server 类的属性(本标题中称为 Headers 属性)。在为输入标头调用方法前,WebService 设置 Headers 属性的值;而当方法为输出标头返回时,WebService 检索该值。有关输出标头或可选标头的更多信息,请参阅 .NET 框架 SDK 文档。
[WebMethod(Description="This method requires a custom soap header set by the caller")]
[SoapHeader("sHeader")]
HeaderService h = new HeaderService();
AuthHeader myHeader = new AuthHeader();
myHeader.Username = "JohnDoe";
myHeader.Password = "password";
h.AuthHeader = myHeader;
String result = h.SecureMethod();
参见:http://chs.gotdotnet.com/quickstart/aspplus/doc/secureservices.aspx
相关文章推荐
- 使用 Soap 标头自定义身份验证和授权Web Service
- WebService:使用 Soap 标头自定义身份验证和授权(转载)
- 利用webservice.htc如何使用Soap标头自定义身份验证和授权
- 如何:使用 SOAP 头执行自定义身份验证
- Web Service 中的身份验证策略--使用自定义SOAP 标题
- 使用Soap头自定义身份验证
- 通过使用客户端证书调用 Web 服务进行身份验证(zz)
- 使用SoapHeader传递Web Serivices自定义的身份验证数据
- 通过使用客户端证书调用 Web 服务进行身份验证(zz)
- 使用SoapHeader传递Web Serivices自定义的身份验证数据
- [学习日记]对SOAP头内添加信息的验证,可实现对请求WEB服务进行身份验证。
- Web Service 中的身份验证策略--使用自定义SOAP 标题
- 通过使用客户端证书调用 Web 服务以便在 ASP.NET Web 应用程序中进行身份验证
- IssueVision与TaskVision 使用技术比较--XML Web services自定义身份验证数据
- Web Service 中的身份验证策略--使用自定义SOAP 标题
- 使用Soap头自定义身份验证
- 通过使用客户端证书调用 Web 服务进行身份验证{转}
- Web Service 中的身份验证策略--使用自定义SOAP 标题
- 使用Soap头自定义身份验证
- IssueVision 学习笔记(一)-----使用SoapHeader传递Web Serivices自定义的身份验证数据