UserNamePasswordServiceCredential.CacheLogonTokens Proprietà

Definizione

Ottiene o imposta un valore che indica se i token di accesso vengono memorizzati nella cache.Gets or sets a value that indicates whether logon tokens are cached.

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

Valore della proprietà

Boolean

true se i token di accesso vengono memorizzati nella cache. In caso contrario, false.true if logon tokens are cached; otherwise, false. Il valore predefinito è false.The default is false.

Esempio

Nell'esempio seguente si ottiene il valore di questa proprietà.The following example gets the value of 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 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()

Commenti

Per impostazione predefinita, la sicurezza WCF chiede al sottosistema di sicurezza di Windows di creare un token di accesso per ogni token di sicurezza nome utente/password in ingresso se il nome utente viene mappato a un account di Windows.By default, WCF security asks the Windows security subsystem to create a logon token for every incoming user name/password security token if the user name is being mapped to a Windows account. Questo comportamento può essere modificato impostando la proprietà UserNamePasswordValidationMode.This behavior can be changed by setting the UserNamePasswordValidationMode property.

Per la modalità Windows, il servizio utilizza la funzione LogonUser di Win32 per l'autenticazione di nome utente/password.For Windows mode, the service uses Win32's LogonUser function for user name/password authentication. Se la proprietà CacheLogonTokens viene impostata su true, il token di Windows risultante viene memorizzato nella cache e viene riutilizzato per la stessa coppia di nome utente/password.If the CacheLogonTokens is set to true, the resulting Windows token is cached and reused for the same user name/password pair. La cache è valida per la proprietà CachedLogonTokenLifetime.The cache is valid for CachedLogonTokenLifetime. Il numero massimo di cache è limitato a quello indicato dalla proprietà MaxCachedLogonTokens.The maximum number of caches is limited to MaxCachedLogonTokens.

Si applica a