我有一個使用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,並且在這兩種情況下,服務都需要一個證書才能啓動。
我錯過了什麼嗎?自定義用戶名和密碼驗證程序是否始終需要證書?