ClientCredentialsSecurityTokenManager.CreateSecurityTokenProvider Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en säkerhetstokenprovider.
public:
override System::IdentityModel::Selectors::SecurityTokenProvider ^ CreateSecurityTokenProvider(System::IdentityModel::Selectors::SecurityTokenRequirement ^ tokenRequirement);
public override System.IdentityModel.Selectors.SecurityTokenProvider CreateSecurityTokenProvider(System.IdentityModel.Selectors.SecurityTokenRequirement tokenRequirement);
override this.CreateSecurityTokenProvider : System.IdentityModel.Selectors.SecurityTokenRequirement -> System.IdentityModel.Selectors.SecurityTokenProvider
Public Overrides Function CreateSecurityTokenProvider (tokenRequirement As SecurityTokenRequirement) As SecurityTokenProvider
Parametrar
- tokenRequirement
- SecurityTokenRequirement
Returer
Objektet SecurityTokenProvider.
Undantag
tokenRequirement är null.
Exempel
Följande kod visar hur du åsidosätter den här metoden.
internal class MyClientCredentialsSecurityTokenManager :
ClientCredentialsSecurityTokenManager
{
MyClientCredentials credentials;
public MyClientCredentialsSecurityTokenManager(
MyClientCredentials credentials): base(credentials)
{
this.credentials = credentials;
}
public override SecurityTokenProvider CreateSecurityTokenProvider(
SecurityTokenRequirement requirement)
{
SecurityTokenProvider result = null;
if (requirement.TokenType == SecurityTokenTypes.X509Certificate)
{
MessageDirection direction = requirement.GetProperty
<MessageDirection>(ServiceModelSecurityTokenRequirement.
MessageDirectionProperty);
if (direction == MessageDirection.Output)
{
if (requirement.KeyUsage == SecurityKeyUsage.Signature)
{
result = new X509SecurityTokenProvider(
this.credentials.ClientSigningCertificate);
}
else
{
result = new X509SecurityTokenProvider(this.credentials.
ServiceEncryptingCertificate);
}
}
else
{
if (requirement.KeyUsage == SecurityKeyUsage.Signature)
{
result = new X509SecurityTokenProvider(this.
credentials.ServiceSigningCertificate);
}
else
{
result = new X509SecurityTokenProvider(credentials.
ClientEncryptingCertificate);
}
}
}
else
{
result = base.CreateSecurityTokenProvider(requirement);
}
return result;
}
public override SecurityTokenAuthenticator
CreateSecurityTokenAuthenticator(SecurityTokenRequirement
tokenRequirement, out SecurityTokenResolver outOfBandTokenResolver)
{
return base.CreateSecurityTokenAuthenticator(tokenRequirement,
out outOfBandTokenResolver);
}
}
Friend Class MyClientCredentialsSecurityTokenManager
Inherits ClientCredentialsSecurityTokenManager
Private credentials As MyClientCredentials
Public Sub New(ByVal credentials As MyClientCredentials)
MyBase.New(credentials)
Me.credentials = credentials
End Sub
Public Overrides Function CreateSecurityTokenProvider(ByVal requirement As SecurityTokenRequirement) As SecurityTokenProvider
Dim result As SecurityTokenProvider = Nothing
If requirement.TokenType = SecurityTokenTypes.X509Certificate Then
Dim direction As MessageDirection = requirement.GetProperty (Of MessageDirection)(ServiceModelSecurityTokenRequirement. MessageDirectionProperty)
If direction = MessageDirection.Output Then
If requirement.KeyUsage = SecurityKeyUsage.Signature Then
result = New X509SecurityTokenProvider(Me.credentials.ClientSigningCertificate)
Else
result = New X509SecurityTokenProvider(Me.credentials. ServiceEncryptingCertificate)
End If
Else
If requirement.KeyUsage = SecurityKeyUsage.Signature Then
result = New X509SecurityTokenProvider(Me. credentials.ServiceSigningCertificate)
Else
result = New X509SecurityTokenProvider(credentials. ClientEncryptingCertificate)
End If
End If
Else
result = MyBase.CreateSecurityTokenProvider(requirement)
End If
Return result
End Function
Public Overrides Function CreateSecurityTokenAuthenticator(ByVal tokenRequirement As SecurityTokenRequirement, <System.Runtime.InteropServices.Out()> ByRef outOfBandTokenResolver As SecurityTokenResolver) As SecurityTokenAuthenticator
Return MyBase.CreateSecurityTokenAuthenticator(tokenRequirement, outOfBandTokenResolver)
End Function
End Class
Kommentarer
Klassen SecurityTokenProvider ansvarar för att hämta token för en viss ServiceModelSecurityTokenRequirement. Du kan också använda tokenleverantörer för att förnya och avbryta token.