ASP.NET中WebService的两种身份验证方法
发布日期:2021-05-09 09:34:30 浏览次数:18 分类:博客文章

本文共 1486 字,大约阅读时间需要 4 分钟。

一、通过SOAP Header身份验证

此方法是通过设置SOAP Header信息来验证身份,主要通过以下几步:

1、在服务端实现一个SOAP Header类

public class CredentialSoapHeader : System.Web.Services.Protocols.SoapHeader

{
    //验证身份的用户名
    public string UserId
    {
        get;
        set;
    }
    //验证身份的密码
    public string Password
    {
        get;
        set;
    }
}

2、创建WebService

[WebService(Namespace=)]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
    public WebService()
    {
        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }
     //生成一个CredentialSoapHeader类的实例
    public CredentialSoapHeader header;
    [WebMethod(Description="用户验证测试")]
    [System.Web.Services.Protocols.SoapHeader("header")] //用户身份验证的soap header
    public string HelloWorld(string contents)
    {
        //验证是否有权访问(当然,也可以通过查询数据库实现,具体视项目要求)
        if(header.UserId.equals("admin") && header.Password.equals("admin"))
        {
            return "Hello World " + contents;
        }
        else
        {
            return "无权使用此服务";
        }
    }
}

3、调用WebService

protected void Button1_Click(object sender, EventArgs e)

{
    localhost.WebService service = new localhost.WebService();
    localhost.CredentialSoapHeader header = new localhost.CredentialSoapHeader();
    //设置SOAP Header
    Header.UserId = "admin";
    Header.Password = "admin";
    service.CredentialSoapHeader = header;
    //调用Web方法
    Response.Write(service.HelloWorld("测试"));
}

 

二、通过集成windows身份验证

1、将WebService设为集成Windows身份验证

2、客户端引用代码

localhost.WebService service = new localhost.WebService();

service.Credentials = new NetworkCredential("guest","123"); //guest是用户名,123是密码
string result = service.HelloWorld("测试");

上一篇:关于JQUERY操作XML问题!
下一篇:操作ACCESS数据库注意事项

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月23日 00时20分29秒