예제 #1
0
    private void OnExternalChallengeCallback(RPCContext context)
    {
        ChallengeExternalRequest request = ChallengeExternalRequest.ParseFrom(context.Payload);

        if (!request.IsInitialized || !request.HasPayload)
        {
            object[] args = new object[] { request.IsInitialized, request.HasRequestToken, request.HasPayload, request.HasPayloadType };
            base.ApiLog.LogWarning("Bad ChallengeExternalRequest received IsInitialized={0} HasRequestToken={1} HasPayload={2} HasPayloadType={3}", args);
        }
        else if (request.PayloadType != "web_auth_url")
        {
            object[] objArray2 = new object[] { request.PayloadType };
            base.ApiLog.LogWarning("Received a PayloadType we don't know how to handle PayloadType={0}", objArray2);
        }
        else
        {
            ExternalChallenge challenge = new ExternalChallenge {
                PayLoadType = request.PayloadType,
                URL         = Encoding.ASCII.GetString(request.Payload)
            };
            object[] objArray3 = new object[] { challenge.PayLoadType, challenge.URL };
            base.ApiLog.LogDebug("Received external challenge PayLoadType={0} URL={1}", objArray3);
            if (this.m_nextExternalChallenge == null)
            {
                this.m_nextExternalChallenge = challenge;
            }
            else
            {
                this.m_nextExternalChallenge.Next = challenge;
            }
        }
    }
예제 #2
0
    public ExternalChallenge GetNextExternalChallenge()
    {
        ExternalChallenge nextExternalChallenge = this.m_nextExternalChallenge;

        if (this.m_nextExternalChallenge != null)
        {
            this.m_nextExternalChallenge = this.m_nextExternalChallenge.Next;
        }
        return(nextExternalChallenge);
    }