WebService的应用之winform身份验证

大家会了web服务,确实很好用,他可以通过定义soap头来定义自己的用户名密码,如下:

None.gif // webservice中添加类
None.gif
// 自定义Soap头,用户名密码
None.gif
public   class  SecurityHeader : System.Web.Services.Protocols.SoapHeader
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
private string _username;
InBlock.gif    
private string _userpass;
InBlock.gif    
public string UserName
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
set
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            _username 
= value;
ExpandedSubBlockEnd.gif        }

InBlock.gif        
get
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return _username;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif    
public string UserPass
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
set
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            _userpass 
= value;
ExpandedSubBlockEnd.gif        }

InBlock.gif        
get
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return _userpass;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }
在service类中定义
public SecurityHeader header;
嘎嘎,注意了啊!
在service中添加处理方法
//用户名密码比对
    private bool ValidateUser(string user, string pass)
    {
        if (user.Equals("user") && pass.Equals("user"))
            return true;
        else
            return false;
    }
下面才是要点(其实哪个都很重要)
    [WebMethod, SoapHeader(" header")]
    public string HelloWorld()
    {
        if (ValidateUser(npssa.UserName, npssa.UserPass))//比对之后返回
        {
            return "Hello World";
        }
        else
        {
            return "error";
        }
    }
服务端配置完了,客户端配置:
private myService.Service ms;
private void Init()
        {
            try
            {
                myService.SecurityHeader header = new Nowind.myService.SecurityHeader();//定义头
                header.UserName = textBox1.Text;//用户名
                header.UserPass = textBox2.Text;
                ms = new Nowind.myService.Service();//定义web引用
                ms.SecurityHeaderValue = header;//加入头信息
                textBox3.Text=ms.HelloWorld();

            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
//也是别人写的自己看了,写出来的
如何让webservice的命名空间和方法在通过IE查看的时候不生成页面或者隐藏命名空间什么的呢.

转载于:https://www.cnblogs.com/whitetiger/archive/2007/07/11/814026.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值