給第三方做了個webservice,因為都是內部系統沒有用到什麼身份驗證,今晚突發奇想,翻書看了一下,有幾個個人認為不是很好的方法,現在展示出來,只求拋磚引玉
通過soapheader來增強webservice的安全性
通過soapheader可以讓具有指定使用者口令的使用者來訪問自己的webservice介面。
soadheader派生類實現
//////summary description for soapheader
///
public
class
mysoapheader:system.web.services.protocols.soapheader
set}
private
string
_username
=string
.empty;
public
string
username
set}
public
mysoapheader()
public
mysoapheader(
string
userid,
string
pwd)
private
bool
isvalid(
string
userid,
string
pwd,
outstring
exceptionmsg)
else
}catch
}public
bool
isvalid(
outstring
exceptionmsg)}
新增基於soapheader驗證的webservice實現
[webservice(namespace ="")][webservicebinding(conformsto
=wsiprofiles.basicprofile1_1)]
//to allow this web service to be called from script, using asp.net ajax, uncomment the following line.
//[system.web.script.services.scriptservice]
public
class
webservice : system.web.services.webservice
//例項化soap頭例項
public
mysoapheader myheader
=new
mysoapheader();
[webmethod]
public
string
helloworld()
else
//驗證通過}}
客戶端呼叫具有soapheader的webservice
protectedvoid
page_load(
object
sender, eventargs e)
感覺就是做了個身份驗證
還有一些方法,可以通過ip等來限制,主要是ip是可以偽造的,還有可以採用ssl實現加密傳輸,這個主要是要申請證書,需要在伺服器安裝證書服務等等,對站點的整體效能有影響,因為它需要進行多次加解密的資料處理。
如果有人有比較好的方法,還望不吝賜教
如何保證Web Service的安全
要以安全的方式訪問web服務方法,可以考慮以下安全措施 l 是誰呼叫?soapheader身份認證。l 來自 訪問ip認證。l 加密傳輸 ssl安全訪問。這些安全保護措施常常是配合使用的。1 web service實現步驟 1 定義自己的soapheader派生類。定義自己的soapheader派生...
webservice安全驗證
大致可分為下面幾種 1 身份驗證和屬性控制,可以整合windows驗證 域伺服器驗證 net passport驗證。2 ip網域名稱限制,只允許特定的ip或者域內機器訪問,對非法的請求進行過濾,3 安全通訊設定,使用者可以啟用web伺服器證書,採用ssl對網路傳遞的資訊進行加密,來保證web ser...
保證執行緒安全的思路
1 使用沒有資源共享的模型 2 有資源共享,但對共享資源只進行讀操作,不去改變資源 2.1不需要對共享資源進行寫操作 2.2使用不可變物件 3 直面執行緒安全 3.1保證原子性 3.2保證 的順序性 3.3保證 的可見性 原子性 比如a在乙個房間內做自己的事情,如果房間沒有上鎖,別的人進去房間會讓a...