Exemple #1
0
        public HttpResponseMessage RespondWithChallenge()
        {
            var challengeData = new Dictionary <string, string>
            {
                { OAuthHelper.Keys.ChallengeTimestamp, OAuthServerHelper.DateTimeToString(SystemTime.UtcNow) },
                { OAuthHelper.Keys.ChallengeSalt, OAuthHelper.BytesToString(OAuthServerHelper.RandomBytes(OAuthHelper.Keys.ChallengeSaltLength)) }
            };

            var responseData = new Dictionary <string, string>
            {
                { OAuthHelper.Keys.RSAExponent, OAuthServerHelper.RSAExponent },
                { OAuthHelper.Keys.RSAModulus, OAuthServerHelper.RSAModulus },
                { OAuthHelper.Keys.Challenge, OAuthServerHelper.EncryptSymmetric(OAuthHelper.DictionaryToString(challengeData)) }
            };

            var msg   = GetEmptyMessage(HttpStatusCode.PreconditionFailed);
            var value = OAuthHelper.Keys.WWWAuthenticateHeaderKey + " " + OAuthHelper.DictionaryToString(responseData);

            msg.Headers.TryAddWithoutValidation("WWW-Authenticate", value);

            return(msg);
        }