static Exception CardspaceError(NativeGetTokenResults error) { switch (error) { default: throw new CardSpaceException(String.Format("identity selector returned an error: {0:X}", error)); } }
static Exception CardspaceError (NativeGetTokenResults error) { switch (error) { default: throw new CardSpaceException (String.Format ("identity selector returned an error: {0:X}", error)); } }
public override GenericXmlSecurityToken GetToken( CardSpacePolicyElement [] policyChain, SecurityTokenSerializer serializer) { NativeGenericXmlToken token; NativeInfocardCryptoHandle proof; NativePolicyElement [] natives = new NativePolicyElement [policyChain.Length]; for (int i = 0; i < policyChain.Length; i++) { natives [i] = new NativePolicyElement( policyChain [i].Target, policyChain [i].Issuer, policyChain [i].Parameters, policyChain [i].PolicyNoticeLink, policyChain [i].PolicyNoticeVersion, policyChain [i].IsManagedIssuer); } int hresult = GetToken(policyChain.Length, natives, out token, out proof); NativeGetTokenResults ret = (NativeGetTokenResults)(hresult & 0xCFFFFFFF); switch (ret) { case NativeGetTokenResults.OK: return(token.ToObject(proof, serializer)); case NativeGetTokenResults.UserCancelled: throw new UserCancellationException(); case NativeGetTokenResults.InvalidPolicy: throw new PolicyValidationException(); case NativeGetTokenResults.ServiceBusy: throw new ServiceBusyException(); case NativeGetTokenResults.ServiceUnavailable: throw new ServiceNotStartedException(); case NativeGetTokenResults.IdentityVerificationFailed: case NativeGetTokenResults.InvalidDecryptionKey: throw new IdentityValidationException(); case NativeGetTokenResults.ErrorOnCommunication: throw new StsCommunicationException(); case NativeGetTokenResults.UntrustedRecipient: throw new UntrustedRecipientException(); case NativeGetTokenResults.UnsupportedPolicy: throw new UnsupportedPolicyOptionsException(); case NativeGetTokenResults.ErrorOnDataAccess: case NativeGetTokenResults.ErrorOnExport: case NativeGetTokenResults.ErrorOnImport: case NativeGetTokenResults.InvalidArgument: case NativeGetTokenResults.ErrorInRequest: case NativeGetTokenResults.ErrorInCardData: case NativeGetTokenResults.InvalidCertificateLogo: case NativeGetTokenResults.InvalidPassword: case NativeGetTokenResults.ProcessDied: case NativeGetTokenResults.Shuttingdown: case NativeGetTokenResults.ErrorOnTokenCreation: case NativeGetTokenResults.TrustExchangeFailure: case NativeGetTokenResults.ErrorOnStoreImport: case NativeGetTokenResults.UIStartFailure: case NativeGetTokenResults.MaxSession: case NativeGetTokenResults.ImportFileAccessFailure: case NativeGetTokenResults.MalformedRequest: case NativeGetTokenResults.RefreshRequired: case NativeGetTokenResults.MissingAppliesTo: case NativeGetTokenResults.UnknownReference: case NativeGetTokenResults.InvalidProofKey: case NativeGetTokenResults.ClaimsNotProvided: default: throw CardspaceError(ret); } }