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();

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft