다음을 통해 공유


CredentialCache.Add 메서드

정의

자격 증명 캐시에 NetworkCredential을 추가합니다.

오버로드

Add(Uri, String, NetworkCredential)

SMTP 이외의 프로토콜과 함께 사용할 NetworkCredential 인스턴스를 자격 증명 캐시에 추가하고 이를 URI(Uniform Resource Identifier) 접두사 및 인증 프로토콜과 연결합니다.

Add(String, Int32, String, NetworkCredential)

SMTP와 함께 사용할 NetworkCredential 인스턴스를 자격 증명 캐시에 추가하고 이를 호스트 컴퓨터, 포트 및 인증 프로토콜과 연결합니다. 이 메서드를 사용하여 추가한 자격 증명은 SMTP에 대해서만 유효합니다. HTTP 또는 FTP 요청에는 이 메서드가 작동하지 않습니다.

Add(Uri, String, NetworkCredential)

Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs

SMTP 이외의 프로토콜과 함께 사용할 NetworkCredential 인스턴스를 자격 증명 캐시에 추가하고 이를 URI(Uniform Resource Identifier) 접두사 및 인증 프로토콜과 연결합니다.

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)

매개 변수

uriPrefix
Uri

자격 증명이 권한을 부여하는 리소스의 URI 접두사를 지정하는 Uri입니다.

authType
String

uriPrefix에 명명된 리소스가 사용한 인증 체계입니다.

cred
NetworkCredential

자격 증명 캐시에 추가할 NetworkCredential입니다.

예외

uriPrefix이(가) null인 경우

또는

authType이(가) null인 경우

동일한 자격 증명이 두 번 이상 추가되는 경우

예제

다음 코드 예제에서는 여러 보안 자격 증명을 CredentialCache 사용 하 여 를 초기화 하 고 해당 자격 증명을 사용 하 여는 합니다 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

설명

메서드는 Add SMTP 이외의 프로토콜에서 사용할 인스턴스를 에 CredentialCache배치 NetworkCredential 합니다. 캐시는 자격 증명을 추가된 순서대로 저장합니다. 메서드가 GetCredential(Uri, String) 호출되면 적절한 일치 NetworkCredential 인스턴스를 반환합니다.

적용 대상

Add(String, Int32, String, NetworkCredential)

Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs

SMTP와 함께 사용할 NetworkCredential 인스턴스를 자격 증명 캐시에 추가하고 이를 호스트 컴퓨터, 포트 및 인증 프로토콜과 연결합니다. 이 메서드를 사용하여 추가한 자격 증명은 SMTP에 대해서만 유효합니다. HTTP 또는 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)

매개 변수

host
String

호스트 컴퓨터를 식별하는 String입니다.

port
Int32

host에 연결할 포트를 지정하는 Int32입니다.

authenticationType
String

host를 사용하여 cred에 연결할 때 사용되는 인증 체계를 식별하는 String입니다.

credential
NetworkCredential

자격 증명 캐시에 추가할 NetworkCredential입니다.

예외

host이(가) null인 경우

또는

authType이(가) null인 경우

authType이 허용되는 값이 아닌 경우.

port가 0보다 작은 경우

예제

다음 코드 예제에서는 CredentialCache SMTP와 함께 사용할 여러 보안 자격 증명으로 를 초기화하고 해당 자격 증명 중 하나를 와 함께 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

설명

이 메서드는 NetworkCredential SMTP와 함께 사용할 인스턴스를 에 배치합니다 CredentialCache. 캐시는 자격 증명을 추가된 순서대로 저장합니다. 메서드가 GetCredential(String, Int32, String) 호출되면 , port및 와 일치하여 선택한 인스턴스를 host반환 NetworkCredential 합니다authType. 비교는 대/소문자를 구분하지 않습니다.

에 지원 authType 되는 값은 "NTLM", "다이제스트", "Kerberos" 및 "Negotiate"입니다.

이 메서드와 함께 추가된 자격 증명은 SMTP에서만 사용할 수 있습니다. 이 메서드는 HTTP 또는 FTP 프로토콜에 대해 작동하지 않습니다.

적용 대상