CredentialCache.GetEnumerator 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回可循环访问 CredentialCache 实例的枚举器。
public:
 virtual System::Collections::IEnumerator ^ GetEnumerator();public System.Collections.IEnumerator GetEnumerator ();abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumeratorPublic Function GetEnumerator () As IEnumerator返回
IEnumerator 的一个 CredentialCache。
实现
示例
下面的代码示例使用 GetEnumerator 方法返回可循环访问实例的 CredentialCache 枚举器。
void Display( NetworkCredential^ credential )
{
   Console::WriteLine( "\n\tUsername : {0} , Password : {1} , Domain : {2}", credential->UserName, credential->Password, credential->Domain );
}
void GetPage( String^ url, String^ userName, String^ password, String^ domainName )
{
   try
   {
      CredentialCache^ myCredentialCache = gcnew CredentialCache;
      // Dummy Credentials used here.
      myCredentialCache->Add( gcnew Uri( "http://microsoft.com/" ), "Basic", gcnew NetworkCredential( "user1","passwd1","domain1" ) );
      myCredentialCache->Add( gcnew Uri( "http://msdn.com/" ), "Basic", gcnew NetworkCredential( "user2","passwd2","domain2" ) );
      myCredentialCache->Add( gcnew Uri( url ), "Basic", gcnew NetworkCredential( userName,password,domainName ) );
      // Creates a webrequest with the specified url.
      WebRequest^ myWebRequest = WebRequest::Create( url );
      myWebRequest->Credentials = myCredentialCache;
      IEnumerator^ listCredentials = myCredentialCache->GetEnumerator();
      Console::WriteLine( "\nDisplaying credentials stored in CredentialCache: " );
      while ( listCredentials->MoveNext() )
            Display( dynamic_cast<NetworkCredential^>(listCredentials->Current) );
      Console::WriteLine( "\nNow Displaying the same using 'foreach' : " );
      // Can use foreach with CredentialCache(Since GetEnumerator function of IEnumerable* has been implemented by 'CredentialCache' class.
      IEnumerator^ myEnum = myCredentialCache->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         NetworkCredential^ credential = safe_cast<NetworkCredential^>(myEnum->Current);
         Display( credential );
      }
      WebResponse^ myWebResponse = myWebRequest->GetResponse();
      // Process response here.
      Console::WriteLine( "\nResponse Received." );
      myWebResponse->Close();
   }
   catch ( WebException^ e ) 
   {
      if ( e->Response != nullptr )
            Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", (dynamic_cast<HttpWebResponse^>(e->Response))->StatusDescription );
      else
            Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", e->Status );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "\nThe following exception was raised : {0}", e->Message );
   }
}
 public static void GetPage(string url,string userName,string password,string domainName)
   {
      try
      {
          CredentialCache myCredentialCache = new CredentialCache();
          // Dummy Credentials used here.
          myCredentialCache.Add(new Uri("http://microsoft.com/"),"Basic", new NetworkCredential("user1","passwd1","domain1"));
          myCredentialCache.Add(new Uri("http://msdn.com/"),"Basic", new NetworkCredential("user2","passwd2","domain2"));
          myCredentialCache.Add(new Uri(url),"Basic", new NetworkCredential(userName,password,domainName));
          // Creates a webrequest with the specified url.
          WebRequest myWebRequest = WebRequest.Create(url);
          myWebRequest.Credentials = myCredentialCache;
          IEnumerator listCredentials = myCredentialCache.GetEnumerator();
          Console.WriteLine("\nDisplaying credentials stored in CredentialCache: ");
          while(listCredentials.MoveNext())
          {
              Display((NetworkCredential)listCredentials.Current);
          }
          Console.WriteLine("\nNow Displaying the same using 'foreach' : ");
          // Can use foreach with CredentialCache(Since GetEnumerator function of IEnumerable has been implemented by 'CredentialCache' class.
          foreach(NetworkCredential credential in myCredentialCache)
              Display(credential);
          // Send the request and waits for response.
       WebResponse myWebResponse = myWebRequest.GetResponse();
         // Process response here.
         Console.WriteLine("\nResponse Received.");
          myWebResponse.Close();
      }
      catch(WebException e)
      {
          if (e.Response != null)
              Console.WriteLine("\r\nFailed to obtain a response. The following error occurred : {0}",((HttpWebResponse)(e.Response)).StatusDescription);
          else
              Console.WriteLine("\r\nFailed to obtain a response. The following error occurred : {0}",e.Status);
      }
      catch(Exception e)
      {
          Console.WriteLine("\nThe following exception was raised : {0}",e.Message);
      }
}
public static void Display(NetworkCredential credential)
{
  Console.WriteLine("\n\tUsername : {0} ,Password : {1} ,Domain : {2}",credential.UserName,credential.Password,credential.Domain);
}
    Try
        Dim myCredentialCache As New CredentialCache
        ' Dummy Credentials used here.             
        myCredentialCache.Add(New Uri("http://microsoft.com/"), "Basic", New NetworkCredential("user1", "passwd1", "domain1"))
        myCredentialCache.Add(New Uri("http://msdn.com/"), "Basic", New NetworkCredential("user2", "passwd2", "domain2"))
        myCredentialCache.Add(New Uri(url), "Basic", New NetworkCredential(userName, password, domainName))
        Dim myWebRequest As WebRequest = WebRequest.Create(url) 'Creates a webrequest with the specified url 
        myWebRequest.Credentials = myCredentialCache
        Dim listCredentials As IEnumerator = myCredentialCache.GetEnumerator()
        Console.WriteLine("Displaying credentials stored in CredentialCache: ")
        While listCredentials.MoveNext()
            Display(CType(listCredentials.Current, NetworkCredential))
        End While
        Console.WriteLine(ControlChars.Cr + "Now Displaying using 'foreach': ")
        ' Can use foreach with CredentialCache(Since GetEnumerator method of IEnumerable has been implemented by 'CredentialCache' class.
        Dim credential As NetworkCredential
        For Each credential In myCredentialCache
            Display(credential)
        Next credential
        Dim myWebResponse As WebResponse = myWebRequest.GetResponse() 'Sends the request and waits for response.
        ' Process the response here
        Console.WriteLine(ControlChars.Cr + "Response Received.")
        myWebResponse.Close()
    Catch e As WebException
        If Not (e.Response Is Nothing) Then
            Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "Failed to obtain a response. The following error occurred : {0}", CType(e.Response, HttpWebResponse).StatusDescription)
        Else
            Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "Failed to obtain a response. The following error occurred : {0}", e.Status)
        End If
    Catch e As Exception
        Console.WriteLine(ControlChars.Cr + "The following exception was raised : {0}", e.Message)
    End Try
End Sub
Public Shared Sub Display(credential As NetworkCredential)
    Console.WriteLine(ControlChars.Cr + "Username : {0} ,Password : {1} ,Domain : {2}", credential.UserName, credential.Password, credential.Domain)
End Sub