我有一个使用net tcp绑定和自定义UserNamePasswordValidator的web服务。用户名和密码由客户端在Credentials.UserName.UserName和Credentials.UserName.Password中发送。我的服务主机被设置如下:UserNamePasswordValidator和证书
host.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = UserNamePasswordValidationMode.Custom; host.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = myCustomValidator;
host.Authorization.PrincipalPermissionMode = PrincipalPermissionMode.Custom;
它完美结合,如果使用的SECURITYMODE = TransportWithMessageCredential和ClientCredentialType = MessageCredentialType.UserName但是这需要一个证书。
我想让它在没有证书的情况下工作。如果我将绑定的SecurityMode更改为None,则服务启动,但我的UserNamePasswordValidator类永远不会被调用。
我试过SecurityMode = Message和SecurityMode.Transport,并且在这两种情况下,服务都需要一个证书才能启动。
我错过了什么吗?自定义用户名和密码验证程序是否始终需要证书?