SoapHeader 傳遞使用者身分識別驗證資訊

來源:互聯網
上載者:User

 [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    // 若要允許使用 ASP.NET AJAX 從指令碼中調用此 Web 服務,請取消對下行的注釋。
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        public MyServiceClassHeader msch;

   

        static    string Convert(string str)
        {
            MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
            return BitConverter.ToString(MD5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(str))).Replace("-", "");
        }

   
        static  string GetMD5Hash(string str)
        {
            string temp = Convert(str).Substring(8, 16).ToLower();
            return Convert(temp).Substring(8, 16).ToLower();
        }

        [WebMethod]
        [SoapHeader("msch", Direction = SoapHeaderDirection.In)]
        public string Login()
        {
            if (msch != null)
            {
                if (msch.MustUnderstand)
                {
                    string UserName =msch.UsN;
                    string PassWord =msch.PaW;
                    if (UserName == GetMD5Hash("wenziyan") || PassWord == GetMD5Hash("811208"))
                    {
                        return "登入成功!";
                    }
                    else
                    {
                        return "登入失敗!";
                    }
                }
                else
                {
                    return "訊息頭不是必讀的!";
                }
            }
            else
            {
                return "沒有頭訊息!";
            }
        }

    }

    public class MyServiceClassHeader : SoapHeader
    {
        public string UsN;
        public string PaW;
    };
 

 

public class  Class1
    {
        //
        //TODO: 在此處添加建構函式邏輯

        //
      public  static    string Convert(string str)
        {
            MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
            return BitConverter.ToString(MD5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(str))).Replace("-", "");
        }

   
      public  static  string GetMD5Hash(string str)
        {
            string temp = Convert(str).Substring(8, 16).ToLower();
            return Convert(temp).Substring(8, 16).ToLower();
        }
    }

 

 

protected void Page_Load(object sender, EventArgs e)
    {
       localhost.MyServiceClassHeader MyHeaer = new localhost.MyServiceClassHeader();
        localhost.Service1 service = new localhost.Service1();
        string userName = "wenziyan";
        String unHash=Class1.GetMD5Hash(userName);

        string passWord = "811208";

        String pwHash = Class1.GetMD5Hash(passWord);

        MyHeaer.UsN = userName;
        MyHeaer.PaW = passWord;
        MyHeaer.MustUnderstand = true;
        service.MyServiceClassHeaderValue = MyHeaer;
        
        string flag = service.Login();
        Response.Write(flag);
    }

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.