Пример #1
0
        /// <summary>
        /// Illustrate recovery using a not-normal-"consumer mode" recovery agent.
        /// </summary>
        /// <param name="tokenClient">SDK client</param>
        /// <param name="alias">Alias of member to recover</param>
        /// <returns>the recovered member</returns>
        public Tokenio.Member RecoverWithComplexRule(
            TokenClient tokenClient,
            Alias alias)
        {
            var memberId = tokenClient.GetMemberId(alias).Result;

            var cryptoEngine = new TokenCryptoEngine(memberId, new InMemoryKeyStore());
            var newKey       = cryptoEngine.GenerateKey(Privileged);

            var verificationId = tokenClient.BeginRecovery(alias).Result;
            var authorization  = tokenClient.CreateRecoveryAuthorization(memberId, newKey).Result;

            var agentSignature = GetRecoveryAgentSignature(authorization);

            var mro = new MemberRecoveryOperation
            {
                AgentSignature = agentSignature,
                Authorization  = authorization
            };
            var recoveredMember = tokenClient.CompleteRecovery(
                memberId,
                new List <MemberRecoveryOperation> {
                mro
            },
                newKey,
                cryptoEngine).Result;

            recoveredMember.VerifyAlias(verificationId, "1thru6").Wait();

            return(recoveredMember);
        }