Web Service 加入Header及Client的使用方式
Web Service一般都是直接呼叫使用,而以下的範例,則是加了Header,如果Header不對,則Client無法呼叫使用.
先從Web Service說起.















































從以上的Code可以看到,會先判斷Header存不存在,如果不存在,則Access Deny,如果存在,就判斷AccID及AccPWD是否正確,如果不正確,也是Access Deny.
而可以呼叫的WebMethod為HelloWorld().
這樣就做好Web Service端的Header部份的動作,而接下來Client就要使用這個WS.所以一定要先加入Web參考.
Client端的一般呼叫WS的方式很簡單.









這個程式呼叫HelloWorld一定會跳Exception,因為沒有Header.
所以要加入Header才能執行,做一個Demo畫面,用來測試,如果當Header的值有誤時,會怎麼樣.
不含Header即是前一個範例,而接下來要做的是含Header的部份.
首先先產生一個ProxyWeb的Class(名字隨個人高興),因為我的WS是用HW命名,所以是HW.Service1















有了這個Class後,就可以直接使用了









用法一樣,只是在new ProxyWeb時,傳入ID及PWD,沒什麼特別的步驟.呼叫其它的WebMethod也不需再去寫另個Class或什麼的,用法都一樣,除非是另一個Web Service,才需要再寫一個Class.
測試結果,當然ID及PWD符合時,才會跳出HelloWorld,不然都是Access Deny.
而ProxyWeb除了可以加Header外,也可在這邊指定Web Service的Url,因為有些人的WS的Url是動態的,所以可以在ProxyWeb的這個Class指定就好.
這個的應用方式很多,不是像我這樣的簡易驗證,也可用來傳一些共用的固定值,例如UserID,我這只是Demo做法.
如果有更好的做法或寫法,也感謝各位的分享.
原始碼 :
Client : WSHeaderCL.zip
Web Service : WSHeaderWS.zip