Partilhar via


CredentialCache.Add Método

Definição

Adiciona uma instância NetworkCredential ao cache de credencial.

Sobrecargas

Add(Uri, String, NetworkCredential)

Adiciona uma instância NetworkCredential ao cache de credencial para uso com protocolos diferentes do SMTP e a associa a um prefixo URI (Uniform Resource Identifier) e protocolo de autenticação.

Add(String, Int32, String, NetworkCredential)

Adiciona uma instância NetworkCredential para ser usada com o SMTP para o cache de credencial e a associa a um computador host, porta e protocolo de autenticação. Credenciais adicionadas ao usar esse método são válidas somente para SMTP. Esse método não funciona para solicitações HTTP ou FTP.

Add(Uri, String, NetworkCredential)

Origem:
CredentialCache.cs
Origem:
CredentialCache.cs
Origem:
CredentialCache.cs

Adiciona uma instância NetworkCredential ao cache de credencial para uso com protocolos diferentes do SMTP e a associa a um prefixo URI (Uniform Resource Identifier) e protocolo de autenticação.

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)

Parâmetros

uriPrefix
Uri

Um Uri que especifica o prefixo URI dos recursos aos quais a credencial concede acesso.

authType
String

O esquema de autenticação usado pelo recurso nomeado no uriPrefix.

cred
NetworkCredential

O NetworkCredential para adicionar o cache de credencial.

Exceções

uriPrefix é null.

- ou -

authType é null.

As mesmas credenciais são adicionadas mais de uma vez.

Exemplos

O exemplo de código a seguir inicializa um CredentialCache com várias credenciais de segurança e usa essas credenciais com um 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

Comentários

O Add método coloca uma NetworkCredential instância para uso com protocolos diferentes de SMTP no CredentialCache. O cache armazena credenciais na ordem em que elas são adicionadas a ela. Quando o GetCredential(Uri, String) método é chamado, ele retorna a instância correspondente NetworkCredential adequada.

Aplica-se a

Add(String, Int32, String, NetworkCredential)

Origem:
CredentialCache.cs
Origem:
CredentialCache.cs
Origem:
CredentialCache.cs

Adiciona uma instância NetworkCredential para ser usada com o SMTP para o cache de credencial e a associa a um computador host, porta e protocolo de autenticação. Credenciais adicionadas ao usar esse método são válidas somente para SMTP. Esse método não funciona para solicitações HTTP ou 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)

Parâmetros

host
String

Um String que identifica o computador host.

port
Int32

Um Int32 que especifica a porta para conectar-se no host.

authenticationType
String

Um String que identifica o esquema de autenticação usado ao conectar-se ao host usando cred.

credential
NetworkCredential

O NetworkCredential para adicionar o cache de credencial.

Exceções

host é null.

- ou -

authType é null.

authType não é um valor aceito.

port é menor que zero.

Exemplos

O exemplo de código a seguir inicializa um CredentialCache com várias credenciais de segurança para uso com SMTP e usa uma dessas credenciais com um 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

Comentários

Esse método coloca uma NetworkCredential instância para uso com SMTP no CredentialCache. O cache armazena credenciais na ordem em que elas são adicionadas a ela. Quando o GetCredential(String, Int32, String) método é chamado, ele retorna uma NetworkCredential instância selecionada correspondendo a host, porte authType. A comparação é feita sem diferenciar maiúsculas de minúsculas.

Os valores com suporte para authType são "NTLM", "Digest", "Kerberos" e "Negotiate".

As credenciais adicionadas com esse método só são válidas para uso com SMTP. Esse método não funciona para protocolos HTTP ou FTP.

Aplica-se a