UserNamePasswordServiceCredential.CacheLogonTokens Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob Anmeldetoken zwischengespeichert werden, oder legt diesen Wert fest.

public:
 property bool CacheLogonTokens { bool get(); void set(bool value); };
public bool CacheLogonTokens { get; set; }
member this.CacheLogonTokens : bool with get, set
Public Property CacheLogonTokens As Boolean

Eigenschaftswert

true, wenn Anmeldetoken zwischengespeichert werden, andernfalls false. Der Standardwert ist false.

Beispiele

Im folgenden Beispiel wird der Wert dieser Eigenschaft abgerufen.

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

// Create a binding that uses a username/password credential.
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
b.Security.Message.ClientCredentialType = MessageCredentialType.UserName;

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

// Get a reference to the UserNamePasswordServiceCredential object.
UserNamePasswordServiceCredential unpCredential =
    sh.Credentials.UserNameAuthentication;
// Print out values.
Console.WriteLine("IncludeWindowsGroup: {0}",
    unpCredential.IncludeWindowsGroups);
Console.WriteLine("UserNamePasswordValidationMode: {0}",
    unpCredential.UserNamePasswordValidationMode);
Console.WriteLine("CachedLogonTokenLifetime.Minutes: {0}",
    unpCredential.CachedLogonTokenLifetime.Minutes );
Console.WriteLine("CacheLogonTokens: {0}",
    unpCredential.CacheLogonTokens );
Console.WriteLine("MaxCachedLogonTokens: {0}",
    unpCredential.MaxCachedLogonTokens );

Console.ReadLine();
' Create a service host.
Dim httpUri As New Uri("http://localhost/Calculator")
Dim sh As New ServiceHost(GetType(Calculator), httpUri)

' Create a binding that uses a username/password credential.
Dim b As New WSHttpBinding(SecurityMode.Message)
b.Security.Message.ClientCredentialType = MessageCredentialType.UserName

' Add an endpoint.
sh.AddServiceEndpoint(GetType(ICalculator), b, "UserNamePasswordCalculator")

' Get a reference to the UserNamePasswordServiceCredential object.
Dim unpCredential As UserNamePasswordServiceCredential = sh.Credentials.UserNameAuthentication
' Print out values.
Console.WriteLine("IncludeWindowsGroup: {0}", unpCredential.IncludeWindowsGroups)
Console.WriteLine("UserNamePasswordValidationMode: {0}", unpCredential.UserNamePasswordValidationMode)
Console.WriteLine("CachedLogonTokenLifetime.Minutes: {0}", unpCredential.CachedLogonTokenLifetime.Minutes)
Console.WriteLine("CacheLogonTokens: {0}", unpCredential.CacheLogonTokens)
Console.WriteLine("MaxCachedLogonTokens: {0}", unpCredential.MaxCachedLogonTokens)

Console.ReadLine()

Hinweise

Standardmäßig fordert WCF-Sicherheit das Windows-Sicherheitssubsystem auf, ein Anmeldetoken für jedes eingehende Benutzernamen-/Kennwortsicherheitstoken zu erstellen, wenn der Benutzername einem Windows-Konto zugeordnet wird. Sie können dieses Verhalten ändern, indem Sie die UserNamePasswordValidationMode-Eigenschaft festlegen.

Im Windows-Modus verwendet der Dienst die LogonUser-Funktion von Win32 für die Benutzername/Kennwort-Authentifizierung. Wenn CacheLogonTokens auf true festgelegt ist, wird das resultierende Windows-Token zwischengespeichert und später für das gleiche Benutzername/Kennwort-Paar wiederverwendet. Der Cache ist gültig für CachedLogonTokenLifetime. Die maximale Anzahl von Caches ist auf MaxCachedLogonTokens beschränkt.

Gilt für: