Eğer this topic (WCF Security: Getting the password of the user) by Rory Primrose başvurursanız, o önemli uzatma yöntemi CreateSecurityTokenManager
olmanın ne özel bir doğrulayıcı sağlayan ilgili bilgi arıyorsanız benzer ulaşır:
<serviceCredentials type="your.assembly.namespace.PasswordServiceCredentials,
your.assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" >
</serviceCredentials>
01:
public class PasswordServiceCredentials : ServiceCredentials
{
public PasswordServiceCredentials()
{
}
private PasswordServiceCredentials(PasswordServiceCredentials clone)
: base(clone)
{
}
protected override ServiceCredentials CloneCore()
{
return new PasswordServiceCredentials(this);
}
public override SecurityTokenManager CreateSecurityTokenManager()
{
// Check if the current validation mode is for custom username password validation
if (UserNameAuthentication.UserNamePasswordValidationMode == UserNamePasswordValidationMode.Custom)
{
return new PasswordSecurityTokenManager(this);
}
Trace.TraceWarning(Resources.CustomUserNamePasswordValidationNotEnabled);
return base.CreateSecurityTokenManager();
}
}
, şöyle yapılandırmanızda
<ServiceCredentials>
'ın
ConfigurationElement
üzerinde türü özelliğini belirtmek gerekir bu özel hizmeti kimlik kullanmak için
Benzer şekilde, bu type
özniteliğini programatik olarak ayarlayabilirsiniz, ancak nasıl olduğunu bilmiyorum.
Teşekkürler. CustomValidator'u kodla nasıl belirlediğimi de gösterir misiniz? – jgauffin
Yine, denemedim, ancak ServiceCredentials yalnızca başka bir hizmet davranışıdır, bu nedenle bir ServiceCredentialsElement örneği oluşturup UserNameAuthentication özelliklerini ayarlayın, sonra CreateBehavior() öğesini çağırıp ServiceHost'a ekleyin. – tomasr