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
然后我们需要编写一个验证用户名密码的类,如下:
- 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
服务器端的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" />
客户端进行服务引用之后,可通过如下代码指定身份信息:
- 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- '' 执行服务方法
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。内容未经允许不得转载,或转载时需注明来源: 创新互联