Condividi tramite


CredentialCache.Add Metodo

Definizione

Aggiunge un'istanza di NetworkCredential alla cache delle credenziali.

Overload

Add(Uri, String, NetworkCredential)

Aggiunge un'istanza di NetworkCredential alla cache delle credenziali da utilizzare con protocolli diversi da SMTP e la associa a un prefisso URI (Uniform Resource Identifier) e a un protocollo di autenticazione.

Add(String, Int32, String, NetworkCredential)

Aggiunge un'istanza NetworkCredential da utilizzare con SMTP alla cache delle credenziali e la associa a un computer host, a una porta e a un protocollo di autenticazione. Le credenziali aggiunte con questo metodo sono valide solo per SMTP. Questo metodo non funziona per le richieste HTTP o FTP.

Add(Uri, String, NetworkCredential)

Origine:
CredentialCache.cs
Origine:
CredentialCache.cs
Origine:
CredentialCache.cs

Aggiunge un'istanza di NetworkCredential alla cache delle credenziali da utilizzare con protocolli diversi da SMTP e la associa a un prefisso URI (Uniform Resource Identifier) e a un protocollo di autenticazione.

public:
 void Add(Uri ^ uriPrefix, System::String ^ authType, System::Net::NetworkCredential ^ cred);
public void Add (Uri uriPrefix, string authType, System.Net.NetworkCredential cred);
member this.Add : Uri * string * System.Net.NetworkCredential -> unit
Public Sub Add (uriPrefix As Uri, authType As String, cred As NetworkCredential)

Parametri

uriPrefix
Uri

Un Uri che specifica il prefisso URI delle risorse a cui la credenziale concede l'accesso.

authType
String

Lo schema di autenticazione utilizzato dalla risorsa specificata in uriPrefix.

cred
NetworkCredential

La NetworkCredential da aggiungere alla cache delle credenziali.

Eccezioni

uriPrefix è null.

-oppure-

authType è null.

Le stesse credenziali vengono aggiunte più volte.

Esempio

L'esempio di codice seguente inizializza un CredentialCache oggetto con più credenziali di sicurezza e usa tali credenziali con un oggetto WebRequest.

CredentialCache^ myCache = gcnew CredentialCache;

myCache->Add( gcnew Uri( "http://www.contoso.com/" ), "Basic", gcnew NetworkCredential( UserName,SecurelyStoredPassword ) );
myCache->Add( gcnew Uri( "http://www.contoso.com/" ), "Digest", gcnew NetworkCredential( UserName,SecurelyStoredPassword,Domain ) );

wReq->Credentials = myCache;
CredentialCache myCache = new CredentialCache();

myCache.Add(new Uri("http://www.contoso.com/"),"Basic",new NetworkCredential(UserName,SecurelyStoredPassword));
myCache.Add(new Uri("http://www.contoso.com/"),"Digest", new NetworkCredential(UserName,SecurelyStoredPassword,Domain));

wReq.Credentials = myCache;
Dim myCache As New CredentialCache()

myCache.Add(New Uri("http://www.contoso.com/"), "Basic", New NetworkCredential(UserName, SecurelyStoredPassword))
myCache.Add(New Uri("http://www.contoso.com/"), "Digest", New NetworkCredential(UserName, SecurelyStoredPassword, Domain))

wReq.Credentials = myCache

Commenti

Il Add metodo inserisce un'istanza NetworkCredential per l'uso con protocolli diversi da SMTP in CredentialCache. La cache archivia le credenziali nell'ordine in cui vengono aggiunte. Quando viene chiamato il GetCredential(Uri, String) metodo, restituisce l'istanza corrispondente NetworkCredential appropriata.

Si applica a

Add(String, Int32, String, NetworkCredential)

Origine:
CredentialCache.cs
Origine:
CredentialCache.cs
Origine:
CredentialCache.cs

Aggiunge un'istanza NetworkCredential da utilizzare con SMTP alla cache delle credenziali e la associa a un computer host, a una porta e a un protocollo di autenticazione. Le credenziali aggiunte con questo metodo sono valide solo per SMTP. Questo metodo non funziona per le richieste HTTP o FTP.

public:
 void Add(System::String ^ host, int port, System::String ^ authenticationType, System::Net::NetworkCredential ^ credential);
public void Add (string host, int port, string authenticationType, System.Net.NetworkCredential credential);
member this.Add : string * int * string * System.Net.NetworkCredential -> unit
Public Sub Add (host As String, port As Integer, authenticationType As String, credential As NetworkCredential)

Parametri

host
String

Oggetto String che identifica il computer host.

port
Int32

Oggetto Int32 che specifica la porta per connettersi a un host.

authenticationType
String

Oggetto String che identifica lo schema di autenticazione utilizzato in caso di connessione a host mediante cred.

credential
NetworkCredential

La NetworkCredential da aggiungere alla cache delle credenziali.

Eccezioni

host è null.

-oppure-

authType è null.

authType non è un valore accettato.

port è minore di zero.

Esempio

L'esempio di codice seguente inizializza un CredentialCache oggetto con più credenziali di sicurezza per l'uso con SMTP e usa una di queste credenziali con un oggetto SmtpClient.

SmtpClient^ client = gcnew SmtpClient("ContosoMail", 45);
MailAddress^ from = gcnew MailAddress("sender@SenderMailServerName.com", "Sender Name");
MailAddress^ to = gcnew MailAddress("recepient@RecepientMailServerName.com", "Recepient Name");
MailMessage^ message = gcnew MailMessage(from, to);

message->Body = "This is a test email message sent by an application. ";
message->Subject = "Test Email using Credentials";

NetworkCredential^ myCreds = gcnew NetworkCredential("username", "password", "domain");
CredentialCache^ myCredentialCache = gcnew CredentialCache();        
try 
{
    myCredentialCache->Add("ContoscoMail", 35, "Basic", myCreds);
    myCredentialCache->Add("ContoscoMail", 45, "NTLM", myCreds);
            
    client->Credentials = myCredentialCache->GetCredential("ContosoMail", 45, "NTLM");
    client->Send(message);
    Console::WriteLine("Goodbye.");
}
    catch(Exception^ e)
    {
          Console::WriteLine("Exception is raised. ");
          Console::WriteLine("Message: {0} ",e->Message);
    }
SmtpClient client = new SmtpClient("ContosoMail", 45);
MailAddress from = new MailAddress("sender@SenderMailServerName.com", "Sender Name");
MailAddress to = new MailAddress("recepient@RecepientMailServerName.com", "Recepient Name");
MailMessage message = new MailMessage(from, to);

message.Body = "This is a test email message sent by an application. ";
message.Subject = "Test Email using Credentials";

NetworkCredential myCreds = new NetworkCredential("username", "password", "domain");
CredentialCache myCredentialCache = new CredentialCache();
try
{
    myCredentialCache.Add("ContoscoMail", 35, "Basic", myCreds);
    myCredentialCache.Add("ContoscoMail", 45, "NTLM", myCreds);

    client.Credentials = myCredentialCache.GetCredential("ContosoMail", 45, "NTLM");
    client.Send(message);
    Console.WriteLine("Goodbye.");
}
    catch(Exception e)
    {
          Console.WriteLine("Exception is raised. ");
          Console.WriteLine("Message: {0} ",e.Message);
    }
Dim client As New SmtpClient("ContosoMail", 45)
Dim from As New MailAddress("sender@SenderMailServerName.com", "Sender Name")
Dim sendTo As New MailAddress("recepient@RecepientMailServerName.com", "Recepient Name")
Dim message As New MailMessage(from, sendTo)

message.Body = "This is a test email message sent by an application. "
message.Subject = "Test Email using Credentials"

Dim myCreds As New NetworkCredential("username", "password", "domain")
DIm myCredentialCache As New CredentialCache()

Try 
    myCredentialCache.Add("ContoscoMail", 35, "Basic", myCreds)
    myCredentialCache.Add("ContoscoMail", 45, "NTLM", myCreds)

    client.Credentials = myCredentialCache.GetCredential("ContosoMail", 45, "NTLM")
    client.Send(message)
    Console.WriteLine("Goodbye.")
Catch e As Exception
    Console.WriteLine("Exception is raised. ")
    Console.WriteLine($"Message: {e.Message} ")
End Try

Commenti

Questo metodo inserisce un'istanza NetworkCredential per l'uso con SMTP in CredentialCache. La cache archivia le credenziali nell'ordine in cui vengono aggiunte. Quando il GetCredential(String, Int32, String) metodo viene chiamato, restituisce un'istanza NetworkCredential selezionata associando host, porte authType. Il confronto viene eseguito senza distinzione tra maiuscole e minuscole.

I valori supportati per authType sono "NTLM", "Digest", "Kerberos" e "Negotiate".

Le credenziali aggiunte con questo metodo sono valide solo per l'uso con SMTP. Questo metodo non funziona per i protocolli HTTP o FTP.

Si applica a