WCF认证之UserName认证方法

WCF认证的主要作用是帮助我们实现安全的开发环境。在这里我们就为大家介绍一下WCF认证中的一个叫做UserName认证的实现方法。#t#

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的崆峒网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

UserName认证机制很简单,客户端提供用户名密码信息,到服务器端通过UserName验证类进行验证。在此过程中,需要X509证书的支持,使用X509证书并不是用于证书认证而是使用X509证书的密钥对用户名密码进行加密以防在服务器上以明文方式传递。

 

测试时我们可以通过VS命令行创建测试使用的证书,如下:
C:\Program Files\Microsoft Visual Studio 9.0\VC>makecert.exe -sr LocalMachine -s
s My -a sha1 -n CN=SecurityTest -sky exchange –pe

然后我们需要编写一个验证用户名密码的类,如下:

 

 
 
 
  1. Imports System.IdentityModel.Selectors  
  2. Public Class MyCustomValidator  
  3. Inherits UserNamePasswordValidator  
  4. Public Overrides Sub Validate
    (ByVal userName As String, 
    ByVal password As String)  
  5. ''验证过程  
  6. End Sub  
  7. End Class 

 

服务器端的web.config文件还需要增加一些配置,如下:

 

 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14. "SecurityHost.Service1Behavior" 
  15. name="SecurityHost.Service1"> 
  16. "wsHttpBinding" bindingConfiguration
    ="mySecureBinding" 
  17. contract="SecurityHost.IService1"> 
  18.  
  19.  
  20.  
  21.  
  22.  
  23. "mexHttpBinding" contract=
    "IMetadataExchange" /> 
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. DetailInFaults="false" /> 
  31.  
  32.  
  33.  
  34. "SecurityTest" storeLocation="LocalMachine" 
  35. storeName="My" x509FindType=
    "FindBySubjectName" /> 
  36.  
  37. userNamePasswordValidationMode="Custom" 
  38. customUserNamePasswordValidatorType=
    "ClassLibrary1.MyCustomValidator,ClassLibrary1" /> 
  39.  
  40.  
  41.  
  42.  
  43.  

客户端进行服务引用之后,可通过如下代码指定身份信息:

 

 
 
 
  1. Dim client As New ServiceReference1.Service1Client  
  2. '' 我们是使用X509证书密钥加密并非进行证书认证
     client.ClientCredentials.Service
    Certificate.Authentication.Certificate
    ValidationMode = ServiceModel.
    Security.X509CertificateValidationMode.None  
  3. '' 指定客户端身份:用户名、密码  
  4. client.ClientCredentials.UserName
    .UserName = Guid.NewGuid.ToString  
  5. client.ClientCredentials.UserName
    .Password = Guid.NewGuid.ToString  
  6. '' 执行服务方法 

Dim str As String = client.GetData(1)
 

这样我们就可以进行WCF服务的UserName认证了。

文章标题:WCF认证之UserName认证方法
网站路径:http://www.gawzjz.com/qtweb/news19/177069.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联