This documentation is archived and is not being maintained.

ICredentials.GetCredential Method

Returns a NetworkCredential object that is associated with the specified URI, and authentication type.

Namespace:  System.Net
Assembly:  System (in System.dll)

Function GetCredential ( _
	uri As Uri, _
	authType As String _
) As NetworkCredential
Dim instance As ICredentials 
Dim uri As Uri 
Dim authType As String 
Dim returnValue As NetworkCredential 

returnValue = instance.GetCredential(uri, _


Type: System.Uri

The Uri that the client is providing authentication for.

Type: System.String

The type of authentication, as defined in the IAuthenticationModule.AuthenticationType property.

Return Value

Type: System.Net.NetworkCredential
The NetworkCredential that is associated with the specified URI and authentication type, or, if no credentials are available, Nothing.

The GetCredential method returns a NetworkCredential instance that contains the credentials that are associated with the specified URI and authorization scheme. When no credentials are available, the GetCredential method returns Nothing.

The following uses GetCredential to retrieve a NetworkCredential instance.

Class CredentialInfo
    Public uriObj As Uri
    Public authenticationType As [String]
    Public networkCredentialObj As NetworkCredential

    Public Sub New(uriObj As Uri, authenticationType As [String], networkCredentialObj As NetworkCredential)
        Me.uriObj = uriObj
        Me.authenticationType = authenticationType
        Me.networkCredentialObj = networkCredentialObj
    End Sub 'New 
End Class 'CredentialInfo

Private arrayListObj As ArrayList

Public Sub New()
    arrayListObj = New ArrayList()
End Sub 'New 

Public Sub Add(uriObj As Uri, authenticationType As [String], credential As NetworkCredential)
    ' adds a 'CredentialInfo' object into a list
    arrayListObj.Add(New CredentialInfo(uriObj, authenticationType, credential))
End Sub 'Add

' Remove the 'CredentialInfo' object from the list which matches to the given 'Uri' and 'AuthenticationType' 
Public Sub Remove(uriObj As Uri, authenticationType As [String])
    Dim index As Integer 
    For index = 0 To arrayListObj.Count - 1
        Dim credentialInfo As CredentialInfo = CType(arrayListObj(index), CredentialInfo)
        If uriObj.Equals(credentialInfo.uriObj) And authenticationType.Equals(credentialInfo.authenticationType) Then
        End If 
    Next index
End Sub 'Remove

Public Function GetCredential(uriObj As Uri, authenticationType As [String]) As NetworkCredential  Implements ICredentials.GetCredential
    Dim index As Integer 
    For index = 0 To arrayListObj.Count - 1
        Dim credentialInfoObj As CredentialInfo = CType(arrayListObj(index), CredentialInfo)
        If uriObj.Equals(credentialInfoObj.uriObj) And authenticationType.Equals(credentialInfoObj.authenticationType) Then 
            Return credentialInfoObj.networkCredentialObj
        End If 
    Next index
    Return Nothing 
End Function 'GetCredential
__gc class CredentialList : public ICredentials {
   __gc class CredentialInfo {
      Uri* uriObj;
      String* authenticationType;
      NetworkCredential* networkCredentialObj;

      CredentialInfo(Uri* uriObj, String* authenticationType, NetworkCredential* networkCredentialObj) {
         this->uriObj = uriObj;
         this->authenticationType = authenticationType;
         this->networkCredentialObj = networkCredentialObj;

   ArrayList*  arrayListObj;

   CredentialList() {
      arrayListObj = new ArrayList();

   void Add (Uri* uriObj, String* authenticationType, NetworkCredential* credential) {
      // Add a 'CredentialInfo' object into a list.
      arrayListObj->Add (new CredentialInfo(uriObj, authenticationType, credential));

   // Remove the 'CredentialInfo' object from the list that matches to the given 'Uri' and 'AuthenticationType'
   void Remove (Uri* uriObj, String* authenticationType) {
      for (int index=0;index < arrayListObj->Count; index++) {
         CredentialInfo* credentialInfo = dynamic_cast<CredentialInfo*>(arrayListObj->Item[index]);
         if (uriObj->Equals(credentialInfo->uriObj)&& authenticationType->Equals(credentialInfo->authenticationType))

   NetworkCredential * GetCredential (Uri* uriObj, String* authenticationType) {
      for (int index=0;index < arrayListObj->Count; index++) {
         CredentialInfo* credentialInfoObj = dynamic_cast<CredentialInfo*>(arrayListObj->Item[index]);
         if (uriObj->Equals(credentialInfoObj->uriObj) && authenticationType->Equals(credentialInfoObj->authenticationType))
            return credentialInfoObj->networkCredentialObj;
      return 0;

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0