zoukankan      html  css  js  c++  java
  • C#中Web Service身份验证

    最近遇到一个问题,暴露在网络上的Web Service如何做身份验证,而不被其他人说是用, 花了一天的时间去看书,了解到三种方法,再下面记录其中两种,另一种是Form验证,个人并不能完全了解清楚,所以也不在这误人子弟了,闲话不说,开始:

      第一种方案:通过 SOAP Header

      首先需要我们自己去实现一个有身份验证信息的类,这个类继承System.Web.Services.Protocols.SoapHeader,而且定义两个成员变量,一个为UserName,一个为PassWord.

      public class MySoapHeader:SoapHeader

      {

      public string UserName

      {

      get;

      set;

      }

      public string PassWord;

      {

      get;

      set;

      }

      }

      也可以在此类中加入验证方法,当然需要看您项目的具体规划

      接下来是Web Service的写法

      代码

      public class WebService : System.Web.Services.WebService

      {

      public WebService()

      {

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

      //InitializeComponent();

      }

      public MySoapHeader header;

      ////定义用户身份验证类变量header

      [WebMethod(Description = "用户验证测试")]

      [System.Web.Services.Protocols.SoapHeader("header")]//用户身份验证的soap头

      public string HelloWorld()

      {

      string userName = header.UserName;

      string passWord = header.PassWord;

      return "Hello World";

      //加入验证权限的方法,如果之前的SOAPHeader中已经有方法这里可以直接调用

      }

      }

      客户端调用时的代码比较简单:

      代码

      com.WebService test = new com.WebService();//你的web Service

      MySoapHeader Header = new MySoapHeader();//web引用创建soap头对象

      //设置soap头变量

      Header.UserName = "Zane";

      Header.PassWord = "Yao";

      test.MySoapHeaderValue = Header;

      //调用web 方法

      Response.Write(test.HelloWorld());

      这样就完成了~

      第二个方案: 将web服务程序设为集成windows身份验证,当然需要将匿名访问关闭,

      客户端web引用代码

      Test.WebReference.Service wr = new Test.WebReference.Service(); //生成web service实例

      wr.Credentials = new NetworkCredential("用户名","密码");

      Response.Write(wr.HelloWorld()); //调用web service方法

  • 相关阅读:
    easyui tree loader用法
    mysql字符集
    mysql 内连接 左连接 右连接 外连接
    mysql 聚集函数和分组
    mysql 大数据量求平均值
    C++ 纯虚方法
    Windows xcopy
    服务端数据库的操作如何不阻塞
    分布式系统业务服务器的设计
    mysql 查询执行的流程
  • 原文地址:https://www.cnblogs.com/jiewei915/p/2645451.html
Copyright © 2011-2022 走看看