c# WebService添加SoapHeader認證


1.添加一個cretificate類繼承自SoapHeader
     public class CertificateSoapHeader:SoapHeader
        {
            private string username;
            private string password;
            public string UserName
            {
                get
                {
                    return username;
                }
                set
                {
                    username = value;
                }
            }
            public string Password
            {
                get
                {
                    return password;
                }
                set
                {
                    password = value;
                }
            }
            public bool ValideUser(string in_UserName, string in_PassWord)
            {
                string cofig_user = ConfigHelper.GetAppSettings("soapUser");
                string config_pwd = ConfigHelper.GetAppSettings("soapPwd");
                if ((in_UserName == cofig_user) && (in_PassWord == config_pwd))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
2.自寫的WebService方法中添加[SoapHeader("soapHeader")]
 public class Settle_Pay : System.Web.Services.WebService
    {
        public CertificateSoapHeader soapHeader = new CertificateSoapHeader();
        [WebMethod(EnableSession = true, Description = "更新審批狀態")]
        [SoapHeader("soapHeader")]//添加認證標頭
        public Settle_PayReturnEntity UpdateSettlePayApproval(string OA_Id, string status)
        {
            Settle_PayReturnEntity returnEntity = new Settle_PayReturnEntity();
         //校驗用戶名密碼
            if (!soapHeader.ValideUser(soapHeader.UserName, soapHeader.Password))
            {
                returnEntity.Type = "E";
                returnEntity.Message = "用戶名密碼錯誤";
                return returnEntity;
            }
            List<StringBuilder> sqls = new List<StringBuilder>();
            List<object> objs = new List<object>();
            sqls.Add(new StringBuilder(@" update Settle_Pay set applyStatus='" + status + "' where OA_Id='" + OA_Id + "'"));
            objs.Add(null);

            string err = string.Empty;
            int r = DataFactory.SqlDataBase().BatchExecuteByListSql(sqls, objs, ref err);
            if (r > 0)
            {
                returnEntity.Type = "S";
                returnEntity.Message = "審核通過!";
            }
            else
            {
                returnEntity.Type = "E";
                returnEntity.Message = err;
            }
            return returnEntity;
        }

    }
3.通過SoapUI驗證

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM