2009-10-20 8 views
1

J'utilise OpenId sur un nouveau site Web et j'essaie d'obtenir des informations de base sur l'utilisateur, voir le code ci-dessous. Pourquoi est toujours le suivant null?DotNetOpenId - Open Id obtenir des données

var myData = response.GetExtension<ClaimsResponse>(); 

Et le code principal

[System.Web.Mvc.AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult LogOn() 
    { 
     var openid = new OpenIdRelyingParty(); 
     IAuthenticationResponse response = openid.GetResponse(); 

     if (response != null) 
     { 
      switch (response.Status) 
      { 
       case AuthenticationStatus.Authenticated: 
        FormsAuthentication.RedirectFromLoginPage(
         response.ClaimedIdentifier, false); 
        var myData = response.GetExtension<ClaimsResponse>(); 
        break; 
       case AuthenticationStatus.Canceled: 
        ModelState.AddModelError("loginIdentifier", 
         "Login was cancelled at the provider"); 
        break; 
       case AuthenticationStatus.Failed: 
        ModelState.AddModelError("loginIdentifier", 
         "Login failed using the provided OpenID identifier"); 
        break; 
      } 
     } 



     return View("Register"); 
    } 

    [System.Web.Mvc.AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult LogOn(string loginIdentifier) 
    { 
     if (!Identifier.IsValid(loginIdentifier)) 
     { 
      ModelState.AddModelError("loginIdentifier", 
         "The specified login identifier is invalid"); 
      return View(); 
     } 
     else 
     { 
      var openid = new OpenIdRelyingParty(); 
      IAuthenticationRequest request = openid.CreateRequest(
       Identifier.Parse(loginIdentifier)); 

      // Require some additional data 
      request.AddExtension(new ClaimsRequest 
      { 
       Email = DemandLevel.Request, 
       FullName = DemandLevel.Request 
      }); 

      return request.RedirectingResponse.AsActionResult(); 
     } 
    } 
+0

Pour tous ceux qui rencontrez ce problème, consultez cette - http://dotnetopenauth.net:8000/wiki/CodeSnippets/OpenIDRP/ AXFetchAsSregTransform Je peux maintenant obtenir un email de Google, mais toujours pas de Yahoo (je ne pense pas qu'ils soutiennent AX) – LiamB

+1

Liam, Yahoo ne vous donnera pas d'attributs utilisateur sauf si vous êtes sur leur liste blanche spéciale de RP, qui seulement un poignée des RP sont. Donc, si vous recevez un e-mail de Google, je dirais que vous avez raison. –

+0

Ive a réussi à le craquer maintenant, merci pour cela. C'est l'article wiki que j'ai posté ci-dessous qui m'a aidé! À votre santé! – LiamB

Répondre

Questions connexes