CredentialCache::GetEnumerator Method ()
.NET Framework (current version)
Returns an enumerator that can iterate through the CredentialCache instance.
Assembly: System (in System.dll)
Implements
IEnumerable::GetEnumerator()The following code example uses the GetEnumerator method to return an enumerator that can iterate through the CredentialCache instance.
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 occured : {0}", (dynamic_cast<HttpWebResponse^>(e->Response))->StatusDescription ); else Console::WriteLine( "\r\nFailed to obtain a response. The following error occured : {0}", e->Status ); } catch ( Exception^ e ) { Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); } }
Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.1
Windows Phone
Available since 8.1
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.1
Windows Phone
Available since 8.1
Show: