新聞中心
WCF認證的主要作用是幫助我們實現(xiàn)安全的開發(fā)環(huán)境。在這里我們就為大家介紹一下WCF認證中的一個叫做UserName認證的實現(xiàn)方法。#t#

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的崆峒網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
UserName認證機制很簡單,客戶端提供用戶名密碼信息,到服務(wù)器端通過UserName驗證類進行驗證。在此過程中,需要X509證書的支持,使用X509證書并不是用于證書認證而是使用X509證書的密鑰對用戶名密碼進行加密以防在服務(wù)器上以明文方式傳遞。
測試時我們可以通過VS命令行創(chuàng)建測試使用的證書,如下:
C:\Program Files\Microsoft Visual Studio 9.0\VC>makecert.exe -sr LocalMachine -s
s My -a sha1 -n CN=SecurityTest -sky exchange –pe
然后我們需要編寫一個驗證用戶名密碼的類,如下:
- Imports System.IdentityModel.Selectors
- Public Class MyCustomValidator
- Inherits UserNamePasswordValidator
- Public Overrides Sub Validate
(ByVal userName As String,
ByVal password As String)- ''驗證過程
- End Sub
- End Class
服務(wù)器端的web.config文件還需要增加一些配置,如下:
"SecurityHost.Service1Behavior" - name="SecurityHost.Service1">
"wsHttpBinding" bindingConfiguration
="mySecureBinding"- contract="SecurityHost.IService1">
"mexHttpBinding" contract=
"IMetadataExchange" />DetailInFaults="false" /> "SecurityTest" storeLocation="LocalMachine" - storeName="My" x509FindType=
"FindBySubjectName" />userNamePasswordValidationMode="Custom" - customUserNamePasswordValidatorType=
"ClassLibrary1.MyCustomValidator,ClassLibrary1" />
客戶端進行服務(wù)引用之后,可通過如下代碼指定身份信息:
- Dim client As New ServiceReference1.Service1Client
- '' 我們是使用X509證書密鑰加密并非進行證書認證
client.ClientCredentials.Service
Certificate.Authentication.Certificate
ValidationMode = ServiceModel.
Security.X509CertificateValidationMode.None- '' 指定客戶端身份:用戶名、密碼
- client.ClientCredentials.UserName
.UserName = Guid.NewGuid.ToString- client.ClientCredentials.UserName
.Password = Guid.NewGuid.ToString- '' 執(zhí)行服務(wù)方法
Dim str As String = client.GetData(1)
這樣我們就可以進行WCF服務(wù)的UserName認證了。
網(wǎng)站題目:WCF認證之UserName認證方法
文章路徑:http://fisionsoft.com.cn/article/cdihgij.html


咨詢
建站咨詢
