ICredentials Interface
Provides the base authentication interface for retrieving credentials for Web client authentication.
For a list of all members of this type, see ICredentials Members.
[Visual Basic] Public Interface ICredentials [C#] public interface ICredentials [C++] public __gc __interface ICredentials [JScript] public interface ICredentials
Classes that Implement ICredentials
| Class | Description |
|---|---|
| CredentialCache | Provides storage for multiple credentials. |
| NetworkCredential | Provides credentials for password-based authentication schemes such as basic, digest, NTLM, and Kerberos authentication. |
Remarks
The ICredentials interface provides the GetCredential method to objects that supply network credentials to applications.
Example
[Visual Basic, C#, C++] The following example illustrates how to use the ICredentials interface.
[Visual Basic] 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 arrayListObj.RemoveAt(index) 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 [C#] 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; } }; [C++] __gc class CredentialList : public ICredentials { __gc 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; } }; private: ArrayList* arrayListObj; public: 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)) arrayListObj->RemoveAt(index); } } 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; } };
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Net
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: System (in System.dll)