Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > Web Service 中的身份验证策略--使用自定义SOAP 标题
【标  题】:Web Service 中的身份验证策略--使用自定义SOAP 标题
【关键字】:Web,Service,--,SOAP
【来  源】:http://blog.csdn.net/yumanqing/archive/2007/04/17/1568099.aspx

Web Service 中的身份验证策略--使用自定义SOAP 标题

Your Ad Here

 自定义SOAP标题可以限制调用服务的用户范围

 using System;
using
 System.Web;
using
 System.Web.Services;
using
 System.Web.Services.Protocols;

[WebService(Namespace 
= "http://tempuri.org/"
)]
[WebServiceBinding(ConformsTo 
=
 WsiProfiles.BasicProfile1_1)]
public class
 Service : System.Web.Services.WebService
{
    
public
 SecurityHeader currentUser;
    
public
 Service()
    
{

        
//
如果使用设计的组件,请取消注释以下行 
        
//InitializeComponent(); 

    }

    [WebMethod, SoapHeader(
"currentUser")]
    
public string GetResult(string
 queryString)
    
{
        
if
(ValidateUser(currentUser.UserName,currentUser.UserPass))
        
{
            
return "你发送的字符串是:"+
queryString;
        }

        
else
            
return "对不起:" + currentUser.UserName+",您不是合法的用户!";
    }

    
//检验SOAP HEADER 
    private bool ValidateUser(string user, string pass)
    
{
        
if (user.Equals("user"&& pass.Equals("user"
))
            
return true
;
        
else

            
return false;
    }

}

//自定义Soap Header Class
public class SecurityHeader : System.Web.Services.Protocols.SoapHeader
{
    
public string
 UserName;
    
public string
 UserPass;
}

下面是客户端的调用

using System;
using
 System.Collections.Generic;
using
 System.ComponentModel;
using
 System.Data;
using
 System.Drawing;
using
 System.Text;
using
 System.Windows.Forms;

namespace
 SoapHeader
{
    
public partial class
 Form1 : Form
    
{
        
public
 Form1()
        
{
            InitializeComponent();
        }


        
private void button_Invoke_Click(object sender, EventArgs e)
        
{
            SoapHeader.localhost.SecurityHeader header 
= new
 SoapHeader.localhost.SecurityHeader();
            header.UserName 
=
 textBox_User.Text;
            header.UserPass 
=
 textBox_Pass.Text;
            SoapHeader.localhost.Service service 
= new
 SoapHeader.localhost.Service();
            service.SecurityHeaderValue 
=
 header;
            
this.textBox_Output.Text+=service.GetResult(this.textBox_Input.Text)+
Environment.NewLine;
        }

    }

}

DataList绑定多维数组的问题和解决方案:【上一篇】
实现将 GridView 导出到 Excel文件中:【下一篇】
【相关文章】
  • Web服务搜索与执行引擎(五)——系统运行有关界面展示
  • 编程实例------一个处理程序出错的例子
  • 等待很久的Web Tools Classpath Container Dependency Publishing特性终于加上了
  • Java开发WebService实例--计数器(上)
  • Java开发WebService实例--计数器(下)
  • 根据定点度数建图--最大流算法
  • 单点weblogic 8.1启动脚本
  • Enjory Code -- Code Technique -- Issue 2 -- 函数
  • Oracle性能调优--系统篇(转:http://mlsx.xplore.cn/read.php?653)
  • 统计在线人数Web
  • 【随机文章】
  • 第7章正则表达式介绍
  • OSPF 区域间的路由计算
  • C#的四个基本技巧
  • RM格式说明(english)
  • PowerBuilder菜单属性的修改
  • PHP重定向
  • 页面锁定--多客户环境下VB数据库编程之(5)
  • 数据库主键设计之思考
  • 系统解答:引导或系统启动驱动程序无法加载
  • fckeditor 插件参考一
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.