我在c#中有wcf。我使用CustomUserNameVlidation扩展UserNamePasswordValidator。
要连接到wcf,用户必须输入用户名和密码:
con.ClientCredentials.UserName.UserName = "userName";
con.ClientCredentials.UserName.Password = "password";
当我想在wcf代码中获取用户名时,我使用这段代码:
OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name;
但我找不到任何方法来获取客户端凭据的密码! 我进行了搜索并试图使用:
OperationContext.Current.IncomingMessageProperties["httpRequest"]
或
var context = OperationContext.Current;
var token = context.IncomingMessageProperties.Security
.IncomingSupportingTokens[0].SecurityToken as
System.IdentityModel.Tokens.UserNameSecurityToken;
这样的事情,但没有任何效果。