2013-10-11 2 views
0

Я использую DotNetOpenAuth.WebConsumer.ProcessUserAuthorization возвращает null

Итак .. Я хорошо смотрю 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 раз, и я уверен, что все URL-адреса для создания ServiceProviderDescription верны.

Любой ключ?

ответ

0

Ну

наконец проверить ключи приложения web.config

добавить ключ = "identityOAuthConsumerKey" значение = "поместить здесь правильные данные !!!"
add key = "identityOAuthConsumerSecret" value = "положить здесь правильные данные !!!"

и если вы используете хосты файл, который вы должны поставить правильный Имя_узла а

127.0.0.1 site1.host1.com