ICredentials 介面
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供基底驗證介面,用於擷取 Web 用戶端驗證的認證。
public interface class ICredentials
C#
public interface ICredentials
type ICredentials = interface
Public Interface ICredentials
- 衍生
下列範例說明如何使用 ICredentials 介面。
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;
}
};
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;
}
};
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
介面 ICredentials 會將 GetCredential 方法提供給提供網路認證給應用程式的物件。
Get |
傳回 NetworkCredential 物件,這個物件與所指定的 URI 和驗證型別相關聯。 |
產品 | 版本 |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |