Beispiel #1
0
        private void SetAccessToken(OAuthRequestContext context)
        {
            IAccessToken accessToken;

            if (context.Parameters.Token == null && consumerRequests)
            {
                accessToken = new EmptyAccessToken(context.Consumer.Key);
            }
            else if ((accessToken = (IAccessToken)OAuthProvider.Current.TokenStore.Get(context.Parameters.Token, TokenType.Access)) == null)
            {
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenRejected);
            }

            /*
             * Ensure the token was issued to the same consumer as this request purports
             * to be from.
             */
            if (!accessToken.ConsumerKey.Equals(context.Parameters.ConsumerKey))
            {
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenRejected);
            }

            switch (accessToken.Status)
            {
            case TokenStatus.Authorized:
                context.AccessToken = accessToken;
                break;

            case TokenStatus.Expired:
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenExpired);

            case TokenStatus.Used:
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenUsed);

            case TokenStatus.Revoked:
                throw new  OAuthRequestException(null, OAuthProblemTypes.TokenRevoked);

            case TokenStatus.Unauthorized:
            case TokenStatus.Unknown:
            default:
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenRejected);
            }
        }
        private void SetAccessToken(OAuthRequestContext context)
        {
            IAccessToken accessToken;

            if (context.Parameters.Token == null && consumerRequests) {
                accessToken = new EmptyAccessToken(context.Consumer.Key);
            } else if ((accessToken = (IAccessToken) OAuthProvider.Current.TokenStore.Get(context.Parameters.Token, TokenType.Access)) == null)
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenRejected);

            /*
             * Ensure the token was issued to the same consumer as this request purports
             * to be from.
             */
            if (!accessToken.ConsumerKey.Equals(context.Parameters.ConsumerKey))
                throw new OAuthRequestException(null, OAuthProblemTypes.TokenRejected);

            switch (accessToken.Status) {
                case TokenStatus.Authorized:
                    context.AccessToken = accessToken;
                    break;

                case TokenStatus.Expired:
                    throw new OAuthRequestException(null, OAuthProblemTypes.TokenExpired);
                case TokenStatus.Used:
                    throw new OAuthRequestException(null, OAuthProblemTypes.TokenUsed);
                case TokenStatus.Revoked:
                    throw new  OAuthRequestException(null, OAuthProblemTypes.TokenRevoked);
                case TokenStatus.Unauthorized:
                case TokenStatus.Unknown:
                default:
                    throw new OAuthRequestException(null, OAuthProblemTypes.TokenRejected);
            }
        }