我正在使用 WCF 开发一个服务器应用程序来为客户端公开 WebService 端点。我想通过一个简单的自定义提供程序实现身份验证,该提供程序将使用通过 SOAP header 传递的用户名和密码。我知道如何设置要在客户端发送的用户名和密码,我只想知道如何从服务器端的 SOAP header 中提取用户名和密码。任何帮助将不胜感激。
最佳答案
需要在服务行为中指定用户名和密码验证器
<behavior name="MyServiceBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="MyNamespace.MyUserNamePasswordValidator, MyDll" />
</serviceCredentials>
</behavior>
您可以从 MyUserNamePasswordValidator 类访问用户名和密码
public class MyUserNamePasswordValidator : UserNamePasswordValidator
{
public override void Validate( string userName, string password )
{
// valid your password here
}
}
关于WCF 和自定义 Soap 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/321764/