CredentialCache.Add Metoda

Definicja

NetworkCredential Dodaje wystąpienie do pamięci podręcznej poświadczeń.

Przeciążenia

Add(Uri, String, NetworkCredential)

NetworkCredential Dodaje wystąpienie do pamięci podręcznej poświadczeń do użycia z protokołami innymi niż SMTP i kojarzy je z prefiksem uniform resource identifier (URI) i protokołem uwierzytelniania.

Add(String, Int32, String, NetworkCredential)

NetworkCredential Dodaje wystąpienie do użycia z protokołem SMTP do pamięci podręcznej poświadczeń i kojarzy je z komputerem hosta, portem i protokołem uwierzytelniania. Poświadczenia dodane przy użyciu tej metody są prawidłowe tylko dla protokołu SMTP. Ta metoda nie działa w przypadku żądań HTTP ani FTP.

Add(Uri, String, NetworkCredential)

NetworkCredential Dodaje wystąpienie do pamięci podręcznej poświadczeń do użycia z protokołami innymi niż SMTP i kojarzy je z prefiksem uniform resource identifier (URI) i protokołem uwierzytelniania.

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)

Parametry

uriPrefix
Uri

Element Uri określający prefiks identyfikatora URI zasobów, do których poświadczenia udzielają dostępu.

authType
String

Schemat uwierzytelniania używany przez zasób o nazwie w uriPrefix.

cred
NetworkCredential

Element NetworkCredential do dodania do pamięci podręcznej poświadczeń.

Wyjątki

uriPrefix to null.

-lub- authType to null.

Te same poświadczenia są dodawane więcej niż raz.

Przykłady

Poniższy przykład kodu inicjuje CredentialCache element z wieloma poświadczeniami zabezpieczeń i używa tych poświadczeń z elementem 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

Uwagi

Metoda Add umieszcza NetworkCredential wystąpienie do użycia z protokołami innymi niż SMTP w obiekcie CredentialCache. Pamięć podręczna przechowuje poświadczenia w kolejności, w jakiej są do niej dodawane. Gdy metoda jest wywoływana GetCredential(Uri, String) , zwraca odpowiednie zgodne NetworkCredential wystąpienie.

Dotyczy

Add(String, Int32, String, NetworkCredential)

NetworkCredential Dodaje wystąpienie do użycia z protokołem SMTP do pamięci podręcznej poświadczeń i kojarzy je z komputerem hosta, portem i protokołem uwierzytelniania. Poświadczenia dodane przy użyciu tej metody są prawidłowe tylko dla protokołu SMTP. Ta metoda nie działa w przypadku żądań HTTP ani 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)

Parametry

host
String

Element String identyfikujący komputer hosta.

port
Int32

Element Int32 określający port, z który ma nawiązać połączenie w systemie host.

authenticationType
String

Element String identyfikujący schemat uwierzytelniania używany podczas nawiązywania połączenia z usługą host .cred

credential
NetworkCredential

Element NetworkCredential do dodania do pamięci podręcznej poświadczeń.

Wyjątki

host to null.

-lub- authType to null.

authType nie jest akceptowaną wartością.

Parametr port ma wartość niższą niż zero.

Przykłady

Poniższy przykład kodu inicjuje CredentialCache element z wieloma poświadczeniami zabezpieczeń do użycia z serwerem SMTP i używa jednego z tych poświadczeń z elementem 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

Uwagi

Ta metoda umieszcza NetworkCredential wystąpienie do użycia z serwerem SMTP w obiekcie CredentialCache. Pamięć podręczna przechowuje poświadczenia w kolejności, w jakiej są do niej dodawane. Gdy metoda jest wywoływana GetCredential(String, Int32, String) , zwraca NetworkCredential wystąpienie wybrane przez dopasowanie hostwartości , porti authType. Porównanie odbywa się bez uwzględniania wielkości liter.

Obsługiwane wartości authType to "NTLM", "Digest", "Kerberos" i "Negotiate".

Poświadczenia dodane za pomocą tej metody są prawidłowe tylko do użycia z serwerem SMTP. Ta metoda nie działa w przypadku protokołów HTTP ani FTP.

Dotyczy