2010-04-27 8 views
0

Alors, voici un code à la demande: -dotnetopenid extensions d'attribut ne fonctionne pas pour moi!

   IAuthenticationRequest req = openid.CreateRequest(Request.Form["openid_identifier"]); 


       //add extention requests here 
       req.AddExtension(new ClaimsRequest 
        { 
         Email = DemandLevel.Request, 
         BirthDate = DemandLevel.Request, 
         Country = DemandLevel.Request, 
         FullName = DemandLevel.Request, 
         Gender = DemandLevel.Request, 
         Language = DemandLevel.Request, 
         Nickname = DemandLevel.Request, 
         PostalCode = DemandLevel.Request, 
         TimeZone = DemandLevel.Request 
        } 
       ); 

       //get the request from openid 
       return req.RedirectingResponse.AsActionResult(); 

Et voici quelques sur le pick-up: -

     //get attributes from site 
         var sreg = response.GetExtension<ClaimsResponse>(); 

         string sreg_email = "Unknown Email"; 
         DateTime sreg_birthdate; 
         string sreg_birthdateraw; 
         Gender sreg_gender; 
         Version sreg_version; 
         string sreg_timezone; 
         string sreg_nickname; 
         string sreg_postalcode; 
         System.Globalization.CultureInfo sreg_culture; 
         string sreg_country; 
         string sreg_fullname; 
         System.Net.Mail.MailAddress sreg_mailaddress; 
         string sreg_language; 

         if (sreg != null) 
         { 
          sreg_email = sreg.Email; 
          sreg_birthdate = sreg.BirthDate.Value; 
          sreg_birthdateraw = sreg.BirthDateRaw; 
          sreg_country = sreg.Country; 
          sreg_culture = sreg.Culture; 
          sreg_fullname = sreg.FullName; 
          sreg_gender = sreg.Gender.Value; 
          sreg_language = sreg.Language; 
          sreg_mailaddress = sreg.MailAddress; 
          sreg_nickname = sreg.Nickname; 
          sreg_postalcode = sreg.PostalCode; 
          sreg_timezone = sreg.TimeZone; 
          sreg_version = sreg.Version; 
         } 

Mais il est tout à revenir comme nul, quel que soit le fournisseur OpenId j'utilise ...

Est-ce que quelque chose me manque?

Rob

Répondre

0

Avez-vous activé le AXFetchAsSregTransform? En outre, certains fournisseurs ne vous donneront aucune information à moins que le RP discovery works apparaisse sur votre site et/ou que vous publiez une politique de confidentialité dans votre ClaimsRequest, que je ne vois pas dans votre code.

Certains fournisseurs ne fournissent pas de données. Mais MyOpenID.com est un fournisseur qui devrait fonctionner pour votre site et code existant (car il n'a pas les restrictions supplémentaires que j'ai énumérées la dernière fois que j'ai vérifié). Avez-vous testé avec MyOpenID.com?

+0

Salut Andrew, merci pour les pointeurs. Je ne les ai pas encore essayé mais je vais le faire dès que possible. –

+0

Salut Andrew - oui, MyOpenID fonctionne exactement pour le code (tant que vous avez mis en place un Persona). Je vais regarder l'impact de AXFetchAsSregTransform. –

Questions connexes