WebConsumer.ProcessUserAuthorization返回null

时间:2013-10-11 13:00:56

标签: c# .net oauth dotnetopenauth

我使用 DotNetOpenAuth

所以..我看起来很好response,状态为Authenticated

没关系。

现在我想获取用户个人资料信息,但始终获得NULL

这是代码。

 private ServiceProviderDescription GetServiceDescription()
        {
            string ValidateTokenEndPoint = ConfigurationManager.AppSettings["identityOAuthValidateTokenEndPointUrl"];
            string ValidateAuthorizationHeaderEndPoint = ConfigurationManager.AppSettings["identityOAuthValidateAuthorizationHeaderEndPointUrl"];
            string AccessTokenEndPoint = ConfigurationManager.AppSettings["identityOAuthAccessTokenURL"];
            bool UseVersion10A = Convert.ToBoolean(ConfigurationManager.AppSettings["identityOAuthUseVersion10a"]);
            string RequestTokenStr = ConfigurationManager.AppSettings["identityOAuthRequestTokenURL"];
            string UserAuthStr = ConfigurationManager.AppSettings["identityOAuthAuthorizeUserURL"];
            string AccessTokenStr = ConfigurationManager.AppSettings["identityOAuthAccessTokenURL"];
            string InvalidateTokenStr = ConfigurationManager.AppSettings["identityOAuthRequestInvalidateTokenURL"];

            return new ServiceProviderDescription
            {
                AccessTokenEndpoint = new MessageReceivingEndpoint(AccessTokenStr, HttpDeliveryMethods.PostRequest),
                RequestTokenEndpoint = new MessageReceivingEndpoint(RequestTokenStr, HttpDeliveryMethods.PostRequest),
                UserAuthorizationEndpoint = new MessageReceivingEndpoint(UserAuthStr, HttpDeliveryMethods.PostRequest),
                TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() },
                ProtocolVersion = DotNetOpenAuth.OAuth.ProtocolVersion.V10a
            };
        }

void GetUserProfile()
{
    var tokenManager = TokenManagerFactory.GetTokenManager(TokenManagerType.InMemoryTokenManager);
    tokenManager.ConsumerKey = ConfigurationManager.AppSettings["identityOAuthConsumerKey"];
    tokenManager.ConsumerSecret = ConfigurationManager.AppSettings["identityOAuthConsumerSecret"];

var serviceDescription = GetServiceDescription();
var consumer = new WebConsumer(serviceDescription, tokenManager);
var result = consumer.ProcessUserAuthorization(response);

if (result  != null) // It is always null
{

}

我检查了10次,我很确定创建ServiceProviderDescription的所有URL都是正确的。

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

最后检查你的web.config app键

  

add key =“identityOAuthConsumerKey”value =“把这里放到正确的数据!!!”左   add key =“identityOAuthConsumerSecret”value =“把这里放到正确的数据!!!”

如果您使用主机文件,您还必须正确设置网站名称

  

127.0.0.1 site1.host1.com