WindowsServiceCredential.AllowAnonymousLogons Property

 

Gets or sets a value that indicates whether to allowanonymous users access (applies only to message-level security).

Namespace:   System.ServiceModel.Security
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public bool AllowAnonymousLogons { get; set; }

Property Value

Type: System.Boolean

true if anonymous users are allowed access; otherwise, false. The default is false.

When using Windows client credentials on a binding, by default the system does not allow anonymous access. This means that only domain or workgroup authenticated users are allowed into the system. However, in certain cases it is acceptable for anonymous, unauthenticated users to access the service. In this case you can set this property to true to allow anonymous clients to call the service. A service that enables anonymous authentication is significantly loosening the security requirements, so this setting should be used with caution.

Note that this property does not apply to transport security scenarios and applies only when message security is used by the underlying binding to secure the messages. If Windows transport security is used, this property does not apply.

The following code shows how to get this property.

// Create a service host.
Uri httpUri = new Uri("http://localhost/Calculator");
ServiceHost sh = new ServiceHost(typeof(Calculator), httpUri);

// Create a binding that uses a WindowsServiceCredential.
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
b.Security.Message.ClientCredentialType = MessageCredentialType.Windows;

// Add an endpoint.
sh.AddServiceEndpoint(typeof(ICalculator), b, "WindowsCalculator");

// Get a reference to the WindowsServiceCredential object.
WindowsServiceCredential winCredential =
    sh.Credentials.WindowsAuthentication;
// Print out values.
Console.WriteLine("IncludeWindowsGroup: {0}",
    winCredential.IncludeWindowsGroups);
Console.WriteLine("UserNamePasswordValidationMode: {0}",
    winCredential.AllowAnonymousLogons);

Console.ReadLine();

.NET Framework
Available since 3.0
Return to top
Show: