ICredentials.GetCredential(Uri, String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a NetworkCredential object that is associated with the specified URI, and authentication type.
public:
System::Net::NetworkCredential ^ GetCredential(Uri ^ uri, System::String ^ authType);
public System.Net.NetworkCredential GetCredential (Uri uri, string authType);
public System.Net.NetworkCredential? GetCredential (Uri uri, string authType);
abstract member GetCredential : Uri * string -> System.Net.NetworkCredential
Public Function GetCredential (uri As Uri, authType As String) As NetworkCredential
Parameters
- authType
- String
The type of authentication, as defined in the AuthenticationType property.
Returns
The NetworkCredential that is associated with the specified URI and authentication type, or, if no credentials are available, null
.
Examples
The following uses GetCredential to retrieve a NetworkCredential instance.
ref class CredentialList: public ICredentials
{
private:
ref class CredentialInfo
{
public:
Uri^ uriObj;
String^ authenticationType;
NetworkCredential^ networkCredentialObj;
CredentialInfo( Uri^ uriObj, String^ authenticationType, NetworkCredential^ networkCredentialObj )
{
this->uriObj = uriObj;
this->authenticationType = authenticationType;
this->networkCredentialObj = networkCredentialObj;
}
};
ArrayList^ arrayListObj;
public:
CredentialList()
{
arrayListObj = gcnew ArrayList;
}
void Add( Uri^ uriObj, String^ authenticationType, NetworkCredential^ credential )
{
// Add a 'CredentialInfo' object into a list.
arrayListObj->Add( gcnew 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[ index ]);
if ( uriObj->Equals( credentialInfo->uriObj ) && authenticationType->Equals( credentialInfo->authenticationType ) )
arrayListObj->RemoveAt( index );
}
}
virtual NetworkCredential^ GetCredential( Uri^ uriObj, String^ authenticationType )
{
for ( int index = 0; index < arrayListObj->Count; index++ )
{
CredentialInfo^ credentialInfoObj = dynamic_cast<CredentialInfo^>(arrayListObj[ index ]);
if ( uriObj->Equals( credentialInfoObj->uriObj ) && authenticationType->Equals( credentialInfoObj->authenticationType ) )
return credentialInfoObj->networkCredentialObj;
}
return nullptr;
}
};
class CredentialList : ICredentials
{
class CredentialInfo
{
public Uri uriObj;
public String authenticationType;
public NetworkCredential networkCredentialObj;
public CredentialInfo(Uri uriObj, String authenticationType, NetworkCredential networkCredentialObj)
{
this.uriObj = uriObj;
this.authenticationType = authenticationType;
this.networkCredentialObj = networkCredentialObj;
}
}
private ArrayList arrayListObj;
public CredentialList()
{
arrayListObj = new ArrayList();
}
public 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'
public void Remove (Uri uriObj, String authenticationType)
{
for(int index=0;index < arrayListObj.Count; index++)
{
CredentialInfo credentialInfo = (CredentialInfo)arrayListObj[index];
if(uriObj.Equals(credentialInfo.uriObj)&& authenticationType.Equals(credentialInfo.authenticationType))
arrayListObj.RemoveAt(index);
}
}
public NetworkCredential GetCredential (Uri uriObj, String authenticationType)
{
for(int index=0;index < arrayListObj.Count; index++)
{
CredentialInfo credentialInfoObj = (CredentialInfo)arrayListObj[index];
if(uriObj.Equals(credentialInfoObj.uriObj) && authenticationType.Equals(credentialInfoObj.authenticationType))
return credentialInfoObj.networkCredentialObj;
}
return null;
}
};
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
End Class
Private arrayListObj As ArrayList
Public Sub New()
arrayListObj = New ArrayList()
End Sub
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
' 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
arrayListObj.RemoveAt(index)
End If
Next index
End Sub
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
Remarks
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 null
.