我已经开发了REST WCF并在web.config中设置了绑定方式
<bindings>
<webHttpBinding>
<binding name="secureBasic">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>
</bindings>
<serviceBehaviors>
<behavior name="ServiceBehaviour" >
<serviceCredentials>
<userNameAuthentication customUserNamePasswordValidatorType="RestService.CustomUsernamePasswordValidator, RestService"
userNamePasswordValidationMode="Custom" />
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
在CustomUsernamePasswordValidator.cs文件中,我按照以下方式验证用户
namespace RestService
{
public class CustomUsernamePasswordValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if (!AuthenticateUser(userName, password))
throw new SecurityTokenValidationException("Invalid Username or Password");
}
private bool AuthenticateUser(string userName, string password)
{
if (userName == "myaddon" && password == "mypassword")
{
return true;
}
else
return false;
}
}
}
现在的问题是,当我将从同一个项目中使用此服务时,它运行良好但却混淆了为什么这次调用不会进行验证?
此外,当我从ruby commnad propmpt测试我的heroku manifest addon文件时,它会给我错误 认证失败!!我认为这是我的REST WCF应用程序的问题。
如果有人非常了解WCF和身份验证,那么任何人都可以帮我解决这个问题。
由于 阿伦。
答案 0 :(得分:0)
最后,我直接使用WebOperationContext处理自定义身份验证,并跳过Web.Config设置。