CredentialCache.Add Metodo

Definizione

Aggiunge un'istanza NetworkCredential alla cache delle credenziali.

Overload

Nome Descrizione
Add(Uri, String, NetworkCredential)

Aggiunge un'istanza NetworkCredential alla cache delle credenziali da usare con protocolli diversi da SMTP e la associa a un prefisso e un protocollo di autenticazione uniform resource identifier (URI).

Add(String, Int32, String, NetworkCredential)

Aggiunge un'istanza NetworkCredential per l'utilizzo con SMTP alla cache delle credenziali e la associa a un computer host, una porta e 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)

Aggiunge un'istanza NetworkCredential alla cache delle credenziali da usare con protocolli diversi da SMTP e la associa a un prefisso e un protocollo di autenticazione uniform resource identifier (URI).

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

Oggetto Uri che specifica il prefisso URI delle risorse a cui le credenziali concedono l'accesso.

authType
String

Schema di autenticazione usato dalla risorsa denominata in uriPrefix.

cred
NetworkCredential

Oggetto 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 = 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)

Aggiunge un'istanza NetworkCredential per l'utilizzo con SMTP alla cache delle credenziali e la associa a un computer host, una porta e 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 a cui connettersi in host.

authenticationType
String

Oggetto String che identifica lo schema di autenticazione utilizzato per la connessione a host tramite credential.

credential
NetworkCredential

Oggetto NetworkCredential da aggiungere alla cache delle credenziali.

Eccezioni

host è null.

oppure

authenticationType è null.

authenticationType non è un valore accettato.

port è minore di zero.

Esempio

Nell'esempio di codice seguente viene inizializzato un CredentialCache oggetto con più credenziali di sicurezza da utilizzare con SMTP e viene utilizzata una di queste credenziali con un oggetto SmtpClient.

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 nell'oggetto CredentialCache. La cache archivia le credenziali nell'ordine in cui vengono aggiunte. Quando viene chiamato il GetCredential(String, Int32, String) metodo , restituisce un'istanza NetworkCredential selezionata associando host, porte authenticationType. Il confronto viene eseguito senza distinzione tra maiuscole e minuscole.

I valori supportati per authenticationType 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