[Mono-dev] WCF and TransportCredentialOnly

Atsushi Eno atsushieno at veritas-vos-liberabit.com
Thu Feb 17 07:14:11 EST 2011


Hello,

I don't think you really read my message.

Atsushi Eno

(2011/02/17 0:36), rjhdakota wrote:
> I am having what I believe is the same problem. You say basic authentication
> is working, any examples? Our project needs the ability to authorize a
> connection, and currently we cannot. Here is the code that works on Windows
> but allows anyone to connect on MONO:
>
> Public Sub WCFStartService()
>          ' http service, one-way
>
>          Dim binding = New
> BasicHttpBinding(System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly)
>          binding.Security.Transport.ClientCredentialType =
> HttpClientCredentialType.Basic
>
>          Dim address = New Uri("http://192.168.1.129:8080")
>          ServiceHost = New ServiceHost(GetType(HelloService))
>
>
> ServiceHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode
> = Security.UserNamePasswordValidationMode.Custom
>
> ServiceHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator
> = New CustomUserNameValidator
>
>          ServiceHost.AddServiceEndpoint(GetType(IHelloService), binding,
> address)
>          ServiceHost.Open()
>      End Sub
>
> Public Class CustomUserNameValidator
>          Inherits IdentityModel.Selectors.UserNamePasswordValidator
>
>          Public Overrides Sub Validate(ByVal userName As String, ByVal
> password As String)
>              If Nothing = userName OrElse Nothing = password Then
>                  Throw New ArgumentNullException()
>              End If
>
>              If Not (userName = "user" AndAlso password = "pass") Then
>                  ' This throws an informative fault to the client.
>                  Throw New FaultException("Unknown Username or Incorrect
> Password")
>                  ' When you do not want to throw an infomative fault to the
> client,
>                  ' throw the following exception.
>                  ' Throw New SecurityTokenException("Unknown Username or
> Incorrect Password")
>              End If
>
>          End Sub
>
>
>      End Class



More information about the Mono-devel-list mailing list