ServiceCredentialsSecurityTokenManager.CreateSecurityTokenAuthenticator 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SecurityTokenRequirement를 기반으로 보안 토큰 인증자를 만듭니다.
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
매개 변수
- tokenRequirement
- SecurityTokenRequirement
보안 토큰 요구 사항입니다.
- outOfBandTokenResolver
- SecurityTokenResolver
이 메서드가 반환되는 경우 SecurityTokenResolver를 포함합니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환
보안 토큰 인증자입니다.
예외
tokenRequirement
이(가) null
인 경우
전달된tokenRequirement
에 대한 보안 토큰 인증자를 만들 수 없는 경우
예제
다음 코드는 이 메서드를 재정의하는 방법의 예제입니다.
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
설명
outOfBand
토큰 확인자는 보안 처리 시 SOAP에 없는 토큰 메시지를 해결 하려면 WCF 보안 프로세서에서 사용 되는 메서드를 선택적으로 반환한 수 있습니다. 이 메서드가 반환하는 SecurityTokenAuthenticator는 토큰의 유효성을 확인하고 클레임을 추출합니다.
SecurityTokenAuthenticator에서 파생된 각 클래스마다 하나의 ServiceModelSecurityTokenRequirement가 만들어집니다.
적용 대상
.NET