在intranet场景下,Windows身份验证动作良好,并且开发人员可以在自身域中对用户进行身份验证。如果在Web.config文件中将WEB服务设置为WINDOWS身份验证模式,那么必须为每一个用户创建一个本地几户或域账户。对于拥有大量用户的应用程序来说,这不是一个实用的解决方案,美工豕对于Internet上的应用程序来说这是不可能实现的。对Internet而言,可能需要根据结构化查询语言(SQL)数据库来执行自定身份验证和授权。在这种情况下应该向WEB传递自定凭据(例如用户名或密码),并让WEB服务处理身份验证和授权。
这时候我可以用一种比较简便的方法--使用SOAP头。WEB服务消费者在SOAP头中添加用户ID和密码信息,WEB服务方法会检索这些信息,并使用这些信息来执行自定义的验证从而调用相应的服务 。
下面是一个简单的例子:
服务器端:
这时候我可以用一种比较简便的方法--使用SOAP头。WEB服务消费者在SOAP头中添加用户ID和密码信息,WEB服务方法会检索这些信息,并使用这些信息来执行自定义的验证从而调用相应的服务 。
下面是一个简单的例子:
服务器端:
using
System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Security.Principal;
namespace test2
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = " http://tempuri.org/ " )]
[WebSer
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Security.Principal;
namespace test2
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = " http://tempuri.org/ " )]
[WebSer