多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > WCF安全之自定義用戶名密碼驗證方式

WCF安全之自定義用戶名密碼驗證方式

來源:程序員人生   發布時間:2014-03-23 15:11:27 閱讀次數:3978次
  概述

  Windows Communication Foundation (WCF) 是 Microsoft 為構建面向服務的應用程序而提供的統一編程模型(摘自MSDN),在分布式環境下的安全問題尤為重要,如果你覺得使用了WCF默認的安全措施可以讓你高枕無憂,那明天你可就以回家種田了,當然,對于學習來說,足夠了~,但我們講的是真正的項目應用,WCF在各種協議下的安全提供和保證是不盡相同的。

  背景

  在上一篇X509證書介紹后,相信大家對怎么使用X509證書在WCF的安全策略中有一定的了解,本章主要講述在WCF的消息安全模式下的服務器對客戶端基于自定義用戶名和密碼的身份驗證模式。當所有內置 UserNamePassword 驗證模式均不符合應用程序的要求時,你可以能過繼承 System.IdentityModel.Selectors.UserNamePasswordValidator 抽象類,并重寫其Validate方法來實現自己的用戶名密碼驗證程序,實際上,內置的用戶名密碼驗證方式比自定義的用戶名密碼驗證方式要可靠得多,因為自定義的用戶名密碼驗證程序任何人都可以構造,但是標準的用戶名密碼驗證方式剛是將用戶提供的用戶名密碼映射到windows賬戶,所以,如果映射失敗,意味著驗證不通過,以下示例在服務器端啟用自定義的用戶名密碼驗證程序,客戶端在調用服務前需要提供訪問服務所需要的用戶名密碼,并在EndpointIdenty中向服務器標識自己是合法用戶,具體標識參見本系列第二章:WCF安全之EndPointIdentity。如果服務器驗證通過,將向客戶端返回一個從數據庫查詢到的xml列(xElement對象),并將內容打印到控制臺。

  開始吧

  1、實現自定義用戶名密碼方式有哪些要求?

  如上面的所講,首先,我們需要建立一個類,來繼承自System.IdentityModel.Selectors.UserNamePasswordValidator抽象類,并重其validate方法,代碼比較簡單,當然,這只是用于演示作用,如果是在實際的項目中,你完全可以將用戶名密碼存儲在持久化介質上,請看實現:

以下為引用的內容:
public class CustomUserPassword : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if (userName != "admin" || password != "admin")
{
throw new SecurityNegotiationException("驗證用戶名和密碼時,未通過檢測");
}
}
}

  2、配置安全策略和模式

  你可以在代碼或者在配置文件中完成此安全策略實現過程,但是如果你是以代碼方式實現,做之前請參考Artech的文章:[原創]WCF技術剖析之八:ClientBase中對ChannelFactory的緩存機制 (請原諒我引用),配置文件實現如下:

 

以下為引用的內容:

//綁定配置
<binding name="EndpointBinding">
<security mode="Message">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
<message clientCredentialType="UserName"/>
</security>
</binding>

//服務配置
<serviceCredentials>
<serviceCertificate findValue="192168168151service"
x509FindType="FindBySubjectName"
storeLocation="LocalMachine"
storeName="My"/>
<userNameAuthentication customUserNamePasswordValidatorType="UserDataServcie.CustomUserPassword,UserDataServcie" userNamePasswordValidationMode="Custom"/>
</serviceCredentials>

  在上面的過程中,我們的綁定配置中的安全策略必須是消息級別的安全,因為在傳輸級別中,是不提供用戶名密碼驗證方式的。兩種級別的的選擇比較主要體現在安全和效率上,如果你的傳輸效率上沒有什么問題,建議你選擇第四種安全策略:TransportWithMessageCredential,TransportWithMessageCredential的好處是既提供安全傳輸,又保證消息加密,多好!相對來說還是比較簡單的吧

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 三级在线视频 | 日本不卡在线视频 | 午夜影院在线看 | 中文字幕在线观看网址 | 久久亚洲人成网站 | 日韩欧美在线视频 | 国产午夜精品理论片久久影视 | 亚洲专区中文字幕 | 亚洲国产成人久久一区久久 | 亚洲欧美综合色区小说 | 成人性生活视频 | 看大片免费网站 | 国产免费高清福利拍拍拍 | 日韩精品亚洲人成在线观看 | 多人做人爱视频在线观看 | 中文精品久久久久国产不卡 | 国产美女精品三级在线观看 | 免费观看的黄色网址 | 日韩理论片在线观看 | 欧美一区高清 | 国产综合久久一区二区三区 | 欧美日本韩国一区二区 | 亚洲精品成人一区二区 | 在线观看国内自拍 | 亚洲女人影院想要爱 | 456亚洲视频| 亚洲国产精品久久久久网站 | 美女免费网站在线视频 | 国产欧美日韩一区二区三区 | 午夜视频网址 | 日韩视频高清免费看 | 成人影院www在线观看 | 中文字幕无线码中文字幕免费 | 欧美精品成人 | 国产精品亚洲片夜色在线 | 日韩成a人片在线观看日本 日韩成人国产精品视频 | 404毛片 | 日本一本在线视频 | 精品欧美成人高清在线观看2021 | 免费毛片全部不收费的 | 亚洲视色|