• WebService应用一例,带有安全验证


    1、创建WEB项目,添加WEB服务WebService1.asmx,代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Services;
     6 
     7 namespace WebService
     8 {
     9     /// <summary>
    10     /// WebService1 的摘要说明
    11     /// </summary>
    12     [WebService(Namespace = "http://tempuri.org/")]
    13     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    14     [System.ComponentModel.ToolboxItem(false)]
    15     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    16     // [System.Web.Script.Services.ScriptService]    
    17     public class WebService1 : System.Web.Services.WebService
    18     {
    19 
    20         //声明Soap头实例
    21         public MySoapHeader myHeader = new MySoapHeader();
    22 
    23         [System.Web.Services.Protocols.SoapHeader("myHeader")]
    24         [WebMethod]
    25         public string HelloWorld()
    26         {
    27             if (isAuthorized)
    28             {
    29                 return "Hello World";
    30             }
    31             else
    32             {
    33                 return "You do not have power to do this operation!";
    34             }
    35         }
    36 
    37         [System.Web.Services.Protocols.SoapHeader("myHeader")]
    38         [WebMethod]        
    39         public string InputYouName(string name)
    40         {            
    41             if (isAuthorized)
    42             {
    43                 return "Hello " + name;
    44             }
    45             else
    46             {
    47                 return "You do not have power to do this operation!";
    48             }
    49         }
    50 
    51         /// <summary>
    52         /// 判断用户是否获得使用授权
    53         /// </summary>
    54         public bool isAuthorized
    55         {
    56             get
    57             {
    58                 if (myHeader.UserName.Equals("pwd") & myHeader.PassWord.Equals("pwd"))
    59                 {
    60                      return true;
    61                 }
    62                 else
    63                 {
    64                     return false;
    65                 }
    66             }
    67         }
    68     }
    69 }

    2、加入安全验证,在这个web项目中添加一个类文件MySoapHeader.cs,具体代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Web;
     4 
     5 namespace WebService
     6 {
     7     public class MySoapHeader : System.Web.Services.Protocols.SoapHeader
     8     {
     9         private string userName = string.Empty;
    10         private string passWord = string.Empty;
    11 
    12         /// <summary>
    13         /// 构造函数
    14         /// </summary>
    15         public MySoapHeader() { } /// <summary>
    16         /// 构造函数
    17         /// </summary>
    18         /// <param name="userName">用户名</param>
    19         /// <param name="passWord">密码</param>
    20         public MySoapHeader(string userName, string passWord)
    21         {
    22             this.userName = userName;
    23             this.passWord = passWord;
    24         }
    25 
    26         /// <summary>
    27         /// 获取或设置用户用户名
    28         /// </summary>
    29         public string UserName
    30         {
    31             get { return userName; }
    32             set { userName = value; }
    34         }
    35 
    36         /// <summary>
    37         /// 获取或设置用户密码
    38         /// </summary>
    39         public string PassWord
    40         {
    41             get { return passWord; }
    42             set { passWord = value; }
    43         }
    44     }
    45 }

    3、客户端调用,新建一个项目,创建一个控制台程序,调用示例的详细代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace WebServiceControlClient
    {
        class Program
        {
            static void Main(string[] args)
            {
                Service.WebService1SoapClient aa = new Service.WebService1SoapClient();
                Service.MySoapHeader Header = new Service.MySoapHeader();
                Header.PassWord = "pwd";
                Header.UserName = "pwd";
                Console.WriteLine(aa.HelloWorld(Header)+"
    "+aa.InputYouName(Header,"harry"));
                Console.Read();
            }
        }
    }
  • 相关阅读:
    Codeforces 1098C Construct a tree
    使用node查询数据库 (mysql) 时间类型字段返回日期格式不对的解决方式 何苦
    vue2中如何使用组合式API和vueuse工具包
    useSlotsTS
    arcodesignprovite项目配置参考
    Flutter配置环境
    Android项目mvvm的尝试
    华为云平台修改/etc/resolv.conf中的域
    Python将函数动态绑定为对象的成员方法
    canal学习之数据同步(一)
  • 原文地址:https://www.cnblogs.com/wupeihong/p/3611009.html
Copyright © 2020-2023  润新知