您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)webservice安全機(jī)制如何在ASP.NET中實(shí)現(xiàn),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
使用soaphead方法可以在webservice的請(qǐng)求中增加頭部信息,當(dāng)有人調(diào)用我們的webservice時(shí),可以通過(guò)查詢(xún)這個(gè)請(qǐng)求的頭部信息并驗(yàn)證來(lái)防止該軟件以外的程序調(diào)用webservice
一、服務(wù)端部分
using System; using System.Web.Services; using System.Web.Services.Protocols; //請(qǐng)注意此命名空間必須有別于代理動(dòng)態(tài)連接庫(kù)上的命名空間。 //否則,將產(chǎn)生諸如多處定義AuthHeader這樣的錯(cuò)誤。 namespace SoapHeadersCS { //由SoapHeader擴(kuò)展而來(lái)的AuthHeader類(lèi) public class AuthHeaderCS : SoapHeader { public string Username; public string Password; } //[WebService(Description="用于演示SOAP頭文件用法的簡(jiǎn)單示例")] public class HeaderService { public AuthHeaderCS sHeader; [WebMethod(Description = "此方法要求有調(diào)用方自定義設(shè)置的soap頭文件")] [SoapHeader("sHeader")] public string SecureMethod() { if (sHeader == null) return "ERROR:你不是VIP用戶(hù)!"; string usr = sHeader.Username; string pwd = sHeader.Password; if (AuthenticateUser(usr, pwd)) { return "成功:" + usr + "," + pwd; } else { return "錯(cuò)誤:未能通過(guò)身份驗(yàn)證"; } } private bool AuthenticateUser(string usr, string pwd) { if ((usr != null) && (pwd != null)) { return true; } return false; } } }
二、客戶(hù)端部分加上驗(yàn)證的請(qǐng)求
WebService webservice = new WebService(); AuthHeaderCS auth = new AuthHeaderCS(); auth.Username = "vip"; auth.Password = "vippw"; webservice.AuthHeaderCSValue = auth; textBox1.Text = webservice.SecureMethod();
關(guān)于webservice安全機(jī)制如何在ASP.NET中實(shí)現(xiàn)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。