开发者

WCF 3.5 UserNameAuthentication is not working?

What I'm trying to do is to secure my service. To do this I'm using UserNameAuthentication. I did the binding and everything but some reason when I start the service I don't get the Validation prompt! Validate method is not triggered!

Here is my webConfig

I don't know what I'm missing here!

  <system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

<services>
  <service behaviorConfiguration="IPhone.Service1Behavior" name="MobileService.IPhone">
    <endpoint address="" binding="wsHttpBinding" contract="MobileService.IIPhone" bindingConfiguration="SafeServiceConf">
      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="IPhone.Service1Behavior">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceCredentials>
        <userNameAuthentication
             userNamePasswordValidationMode="Custom"
             customUserNamePasswordValidatorType="MobileService.CustomValidator, MobileService" />

      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <wsHttpBinding>
    <binding na开发者_如何学运维me="SafeServiceConf" maxReceivedMessageSize="65536">
      <readerQuotas maxStringContentLength="65536" maxArrayLength="65536"
         maxBytesPerRead="65536" />
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

Here is my code in IPhone.svc for validation

I put the CustomValidator class inside the service!

public class CustomValidator : UserNamePasswordValidator
{
    public override void Validate(string userName, string password)
    {
        if (userName == "test" && password == "test")
            return;
        throw new SecurityTokenException(
            "Unknown Username or Password");
    }
}

Any help?


The validation prompt would not come from WCF. The UI is responsible for that (i.e. ASPX web form).

To pass a user name and password from a client to a service, you would do something like this:

 proxy.ClientCredentials.UserName.UserName = "myUserName";
 proxy.ClientCredentials.UserName.Password = "password";
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜