FetchResult is null ??

7 views
Skip to first unread message

Justin

unread,
Mar 7, 2009, 12:03:35 AM3/7/09
to dotnetopenid
Hello,

like this post here (http://groups.google.com/group/dotnetopenid/
browse_thread/thread/6f0a409c09de48c2/73f6ca36afe1f26f?
lnk=gst&q=persona#73f6ca36afe1f26f), i'm also getting a fetchresult
being null after I _also_ call www.myopenid.com.

For some reason i cannot reply to that existing thread, so i started a
new one. In that thread, Scott Hanselman said he might chat to the CEO
to get some answers.

Has anyone else had any luck or work arounds or success?

Lastly, if u request for an attribute to be required, what happens if
the user doesn't have that piece of information?

eg.

var fetchReq = new FetchRequest();
fetchReq.AddAttribute(new AttributeRequest
(WellKnownAttributes.Contact.Email, true));

thanks heaps.
-Justin A.

Andrew Arnott

unread,
Mar 7, 2009, 1:58:53 AM3/7/09
to dotnet...@googlegroups.com
Hi Justin,

I haven't heard back from Scott or Janrain's CEO on the issue of myopenid.com's non-standard use of AX attribute type URIs.  

The workaround is still to send requests for attributes using the type URIs that myopenid.com recognizes.  You could special case this for just this one OP if you want (and I would encourage it), or you could just request all the attributes you want, 3 times each, one for each type URI style. (lame lame, I know, but with AX there's nothing else you can do to workaround it that I can think of).
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death your right to say it." - Voltaire

Andrew Arnott

unread,
Mar 7, 2009, 2:00:42 AM3/7/09
to dotnet...@googlegroups.com
Oh, and for your last question: what if you "require" an attribute that the user doesn't specify at the OP?  The require vs. request option in AX (and sreg) is poorly distinguished.  Basically "requiring" it is a hint to the OP to give the user a clue that the RP considers this required information.  But the OP is allowed to not provide the value even for 'required' attributes.  

--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death your right to say it." - Voltaire


Justin

unread,
Mar 7, 2009, 6:41:39 AM3/7/09
to dotnetopenid
Hi Andrew and thanks kindly for the replies :)

re: the null thingy.
>> The workaround is still to send requests for attributes using the type URIs
>> that myopenid.com recognizes
So this means i should check to see what the OP is and if the OP (or
contains, etc) myopenid.com, then I would need to do the following..
fetchReq.AddAttribute(new AttributeRequest("http://openid.net/ax/
contact/email", true));

secondly, how/where can i get a list of the the attribute schema/
namespace strings that myopenid use, instead of the default ones in
dotnetopenid?

thirdly, are myopenid the only (main) OP that are doing this?

>>or you could just request all the
>>attributes you want, 3 times each, one for each type URI style.

This i do not understand? 3 times .. for _each_ type? i only read 2
types : the default ones in dotnetopenid and myopenid's
implimentation. I must be confused?


And thank you for the clarification on the required.

- Justin A.

Andrew Arnott

unread,
Mar 7, 2009, 8:57:18 AM3/7/09
to dotnet...@googlegroups.com
Inline...

--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death your right to say it." - Voltaire


On Sat, Mar 7, 2009 at 3:41 AM, Justin <mm11...@spamcorptastic.com> wrote:

Hi Andrew and thanks kindly for the replies  :)

re: the null thingy.
>> The workaround is still to send requests for attributes using the type URIs
>> that myopenid.com recognizes
So this means i should check to see what the OP is and if the OP (or
contains, etc) myopenid.com, then I would need to do the following..
fetchReq.AddAttribute(new AttributeRequest("http://openid.net/ax/
contact/email
", true));

Right... you'd hard-code the myopenid-specific AX type URIs as you've done here.   And the way you'd detect myopenid.com for special casing is not to scan for myopenid.com in the identifier.  Rather, you'd want to check your IAuthenticationRequest.Provider.Uri property and check it for equality against myopenid's provider endpoint URI.  That way, people who have set up delegated identifiers (like http://blog.nerdbank.net, which delegates to myopenid.com) will still trigger your workaround code.


secondly, how/where can i get a list of the the attribute schema/
namespace strings that myopenid use, instead of the default ones in
dotnetopenid?
Here are the three that have been seen in the wild:
http://axschema.org/contact/email  (the official standard one)
http://schema.openid.net/contact/email (myopenid reportedly uses this one)
http://openid.net/schema/contact/email

You see the way each type URI is created by the above list.  Perform a similar transformation on each Type URI you use to generate the myopenid-compatible one.



thirdly, are myopenid the only (main) OP that are doing this?
I haven't heard any examples of other OPs causing these problems.  But no way to prove there aren't any. :)


>>or you could just request all the
>>attributes you want, 3 times each, one for each type URI style.

This i do not understand? 3 times .. for _each_ type? i only read 2
types : the default ones in dotnetopenid and myopenid's
implimentation. I must be confused?
Up to this point I may have only mentioned two.  But I've listed the three above.  So the aggressive workaround would be to request (for example) all three type URI formats that I listed above, for each attribute.  Then the OP is more or less bound to recognize at least one of them.  But then you have to check for responses to each of the three and use the one that has a value.  But since most OPs don't yet support AX, but most do support sreg, that seems like the simpler workaround (to use sreg).
Reply all
Reply to author
Forward
0 new messages