ServiceCredentialsSecurityTokenManager.CreateSecurityTokenAuthenticator Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria um autenticador de token de segurança baseado no SecurityTokenRequirementarquivo .
public:
override System::IdentityModel::Selectors::SecurityTokenAuthenticator ^ CreateSecurityTokenAuthenticator(System::IdentityModel::Selectors::SecurityTokenRequirement ^ tokenRequirement, [Runtime::InteropServices::Out] System::IdentityModel::Selectors::SecurityTokenResolver ^ % outOfBandTokenResolver);
public override System.IdentityModel.Selectors.SecurityTokenAuthenticator CreateSecurityTokenAuthenticator(System.IdentityModel.Selectors.SecurityTokenRequirement tokenRequirement, out System.IdentityModel.Selectors.SecurityTokenResolver outOfBandTokenResolver);
override this.CreateSecurityTokenAuthenticator : System.IdentityModel.Selectors.SecurityTokenRequirement * SecurityTokenResolver -> System.IdentityModel.Selectors.SecurityTokenAuthenticator
Public Overrides Function CreateSecurityTokenAuthenticator (tokenRequirement As SecurityTokenRequirement, ByRef outOfBandTokenResolver As SecurityTokenResolver) As SecurityTokenAuthenticator
Parâmetros
- tokenRequirement
- SecurityTokenRequirement
O requisito do token de segurança.
- outOfBandTokenResolver
- SecurityTokenResolver
Quando este método retorna, contém um SecurityTokenResolver. Este parâmetro é passado sem inicializar.
Devoluções
O autenticador de tokens de segurança.
Exceções
tokenRequirement é null.
Não pode ser criado um autenticador de token de segurança para o tokenRequirement que foi passado.
Exemplos
O código seguinte é um exemplo de como sobrepor este método.
internal class MyServiceCredentialsSecurityTokenManager :
ServiceCredentialsSecurityTokenManager
{
ServiceCredentials credentials;
public MyServiceCredentialsSecurityTokenManager(ServiceCredentials credentials)
: base(credentials)
{
this.credentials = credentials;
}
public override SecurityTokenAuthenticator CreateSecurityTokenAuthenticator
(SecurityTokenRequirement tokenRequirement, out SecurityTokenResolver outOfBandTokenResolver)
{
// Return your implementation of the SecurityTokenProvider based on the
// tokenRequirement argument.
SecurityTokenAuthenticator result;
if (tokenRequirement.TokenType == SecurityTokenTypes.UserName)
{
MessageDirection direction = tokenRequirement.GetProperty<MessageDirection>
(ServiceModelSecurityTokenRequirement.MessageDirectionProperty);
if (direction == MessageDirection.Input)
{
outOfBandTokenResolver = null;
result = new MySecurityTokenAuthenticator();
}
else
{
result = base.CreateSecurityTokenAuthenticator(tokenRequirement, out outOfBandTokenResolver);
}
}
else
{
result = base.CreateSecurityTokenAuthenticator(tokenRequirement, out outOfBandTokenResolver);
}
return result;
}
}
Friend Class MyServiceCredentialsSecurityTokenManager
Inherits ServiceCredentialsSecurityTokenManager
Private credentials As ServiceCredentials
Public Sub New(ByVal credentials As ServiceCredentials)
MyBase.New(credentials)
Me.credentials = credentials
End Sub
Public Overrides Function CreateSecurityTokenAuthenticator(ByVal tokenRequirement As SecurityTokenRequirement, _
<System.Runtime.InteropServices.Out()> _
ByRef outOfBandTokenResolver _
As SecurityTokenResolver) As SecurityTokenAuthenticator
' Return your implementation of the SecurityTokenProvider based on the
' tokenRequirement argument.
Dim result As SecurityTokenAuthenticator
If tokenRequirement.TokenType = SecurityTokenTypes.UserName Then
Dim direction = tokenRequirement.GetProperty(Of MessageDirection)(ServiceModelSecurityTokenRequirement.MessageDirectionProperty)
If direction = MessageDirection.Input Then
outOfBandTokenResolver = Nothing
result = New MySecurityTokenAuthenticator()
Else
result = MyBase.CreateSecurityTokenAuthenticator(tokenRequirement, _
outOfBandTokenResolver)
End If
Else
result = MyBase.CreateSecurityTokenAuthenticator(tokenRequirement, _
outOfBandTokenResolver)
End If
Return result
End Function
End Class
Observações
Um outOfBand resolvedor de token pode opcionalmente ser devolvido pelo método, que é usado pelo processador de segurança WCF para resolver tokens que não estão na mensagem SOAP ao processar a segurança. O SecurityTokenAuthenticator que é devolvido por este método valida os tokens e extrai as reivindicações. É criado um SecurityTokenAuthenticator para cada classe derivado de ServiceModelSecurityTokenRequirement.