.net中的WebService验证

做WebService验证一个是Web服务器上代码另外一台机器只需要调用,不管相隔多远都可以调用成功,我做的是一个简单的客户端只有在正确的用户名和密码下才能调用到Web服务器上的方法,首先在Web服务器上写入新建两个cs一个MySoapHeader.cs 一个为Service.cs:

using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.Services;
using  System.Web.Services.Protocols;

/// <summary>
/// SoapHeader 的摘要说明
/// </summary>

public   class  MySoapHeader : SoapHeader
{
    
private string m_username;
    
private string m_password;

    
public string Username
    
{
        
get
        
{
            
return m_username;
        }

        
set
        
{
            m_username 
= value;
        }

    }


    
public string Password
    
{
        
get
        
{
            
return m_password;
        }

        
set
        
{
            m_password 
= value;
        }

    }


    
public MySoapHeader()
    
{
        
//
        
// TODO: 在此处添加构造函数逻辑
        
//
    }

}

public   class  HeaderCheck
{
    
public static void check(Service srv)
    
{
        
if (!(srv.MyHeader.Username == "admin" && srv.MyHeader.Password == "admin"))
        
{
            
throw new SoapException("Audit Fail", SoapException.ClientFaultCode, "Security");
        }

    }


    
public HeaderCheck()
    
{
        
//
        
// TODO: 在此处添加构造函数逻辑
        
//
    }

}



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
{
    
private MySoapHeader m_myheader;

    
public MySoapHeader MyHeader
    
{
        
get
        
{
            
return m_myheader;
        }

        
set
        
{
            m_myheader 
= value;
        }

    }



    [WebMethod]
    
public string HelloWorld()
    
{
        
return "Hello World";
    }


    [SoapHeader(
"MyHeader")]
    [WebMethod(Description 
= "Plus Two Int")]
    
public int Plus(int a, int b)
    
{
        HeaderCheck.check(
this);
        
return a + b;
    }


    
}

然后另一台机器调用,先得添加Web服务然后写入调用代码:
using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        localhost.Service ws 
= new localhost.Service();
        localhost.MySoapHeader header 
= new localhost.MySoapHeader();
        header.Username 
= "admin";
        header.Password 
= "adnin";
        ws.MySoapHeaderValue 
= header;
        
int r = ws.Plus(12);
        Response.Write(r.ToString());
    }

}
如果用户名和密码正确那么显示的结果是1+2=3,不正确则显示异常,也写代码提示错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值