public override SecurityTokenAuthenticator CreateSecurityTokenAuthenticator( SecurityTokenRequirement tokenRequirement, out SecurityTokenResolver outOfBandTokenResolver) { outOfBandTokenResolver = null; if (tokenRequirement.TokenType == SecurityTokenTypes.UserName) { return(CreateUserNameAuthenticator(tokenRequirement)); } if (tokenRequirement.TokenType == SecurityTokenTypes.X509Certificate) { return(CreateX509Authenticator(tokenRequirement)); } if (tokenRequirement.TokenType == SecurityTokenTypes.Rsa) { return(new RsaSecurityTokenAuthenticator()); } if (tokenRequirement.TokenType == ServiceModelSecurityTokenTypes.SecureConversation) { SecurityBindingElement binding; if (!tokenRequirement.TryGetProperty <SecurityBindingElement> (ReqType.SecurityBindingElementProperty, out binding)) { throw new ArgumentException("SecurityBindingElement is required in the security token requirement"); } SecureConversationSecurityTokenParameters issuedParams; if (!tokenRequirement.TryGetProperty <SecureConversationSecurityTokenParameters> (ReqType.IssuedSecurityTokenParametersProperty, out issuedParams)) { throw new ArgumentException("IssuedSecurityTokenParameters are required in the security token requirement"); } BindingContext issuerBC; if (!tokenRequirement.TryGetProperty <BindingContext> (ReqType.IssuerBindingContextProperty, out issuerBC)) { throw new ArgumentException("IssuerBindingContext is required in the security token requirement"); } SecurityTokenVersion secVer; if (!tokenRequirement.TryGetProperty <SecurityTokenVersion> (ReqType.MessageSecurityVersionProperty, out secVer)) { throw new ArgumentException("MessageSecurityVersion property (of type SecurityTokenVersion) is required in the security token requirement"); } // FIXME: get parameters from somewhere SecurityContextSecurityTokenResolver resolver = new SecurityContextSecurityTokenResolver(0x1000, true); outOfBandTokenResolver = resolver; SecurityContextSecurityTokenAuthenticator sc = new SecurityContextSecurityTokenAuthenticator(); return(new SecureConversationSecurityTokenAuthenticator(tokenRequirement, sc, resolver)); } throw new NotImplementedException("Not implemented token type: " + tokenRequirement.TokenType); }
public override SecurityTokenAuthenticator CreateSecurityTokenAuthenticator( SecurityTokenRequirement requirement, out SecurityTokenResolver outOfBandTokenResolver) { outOfBandTokenResolver = null; if (requirement.TokenType == SecurityTokenTypes.UserName) { return(CreateUserNameAuthenticator(requirement)); } if (requirement.TokenType == SecurityTokenTypes.X509Certificate) { return(CreateX509Authenticator(requirement)); } if (requirement.TokenType == SecurityTokenTypes.Rsa) { return(new RsaSecurityTokenAuthenticator()); } if (requirement.TokenType == ServiceModelSecurityTokenTypes.SecureConversation) { // FIXME: get parameters from somewhere SecurityContextSecurityTokenResolver resolver = new SecurityContextSecurityTokenResolver(0x1000, true); outOfBandTokenResolver = resolver; SecurityContextSecurityTokenAuthenticator sc = new SecurityContextSecurityTokenAuthenticator(); return(new SecureConversationSecurityTokenAuthenticator(requirement, sc, resolver)); } if (requirement.TokenType == ServiceModelSecurityTokenTypes.AnonymousSslnego) { return(CreateSslTokenAuthenticator(requirement)); } if (requirement.TokenType == ServiceModelSecurityTokenTypes.MutualSslnego) { return(CreateSslTokenAuthenticator(requirement)); } if (requirement.TokenType == ServiceModelSecurityTokenTypes.Spnego) { return(CreateSpnegoTokenAuthenticator(requirement)); } else { throw new NotImplementedException("Not implemented token type: " + requirement.TokenType); } }
private SupportingTokenServiceCredentials(SupportingTokenServiceCredentials other) : base(other) { this.tokenResolver = other.tokenResolver; this.tokenAuthenticator = other.tokenAuthenticator; }
public SupportingTokenServiceCredentials() { this.tokenResolver = new SupportingTokenSecurityTokenResolver(); this.tokenAuthenticator = new SecurityContextSecurityTokenAuthenticator(); }