For all of the time I’ve been playing with CardSpace, I’ve only begun truly using the thing in a manner that I would consider representative of real world usage in the last month or so. For the first time, I am authenticating to the same site with the same card again and again, making changes to data in the card with expectations of those changes being picked up by RPs, attempting to provision accounts with cards, and generally acting like an actual user instead of just pushing buttons.
It is an easy tool to use – with one small exception.
I had understood previously that a user must explicitly choose to send optional claims for CardSpace transactions. I just didn’t realize that you had to do that every single time you wished to send optional data to the site. My testing has shown that the “Include optional data” checkbox lasts for one use and one use only. The next time you use that card at that site, if you just click the “Send” button — only the required claims get sent.
So for every transaction where you wish optional claims to be sent, you will need to:
- Click the “Preview” button (even though “send” is right there).
- Click the “Include optional data” checkbox.
- Click the “Send” button.
It doesn’t sound so bad — until you do it all the time.
It means that as a user, you can’t decide once to include your webpage in the data you send to a site. You have to decide every time. That’s if you remember… if you don’t, the data just doesn’t get sent. That initial “send” button on the beguiling green background is hard to resist if you aren’t paying attention.
As a relying party, it makes for difficulties too. It makes just-in-time (ie not locally stored) receipt of optional data just that little bit less consistent. For sites who are storing optional card elements in a local profile, coders can’t blindly assume that every change to an optional claim should result in a profile update, or profile data will come and go on a daily basis, depending on whether or not the user remembers to hit the magic checkbox that day. If you decide to keep the original data in cases where the optional claims are empty, you have to make sure that your integration code can tell the difference between an empty piece of optional data that is included, and a not-included claim, so that you can blank out the field in the former case, and ignore the latter case. That’s a tough one to educate users on, too.
So this longtime CardSpace fan and user would like to respectfully suggest that it might be worth changing either the position, or the persistence of the “Include optional data” checkbox. My preference would be that the “Include optional data” checkbox be placed on the initial send page, and if I could have it all, I would want the state of the checkbox to default to whatever setting I set it to the last time I sent this card to this site. I would be fine with having the checkbox reset to “off” whenever I made changes to the card. I would even be ok with the box being unselected every time – as long as it was in a place where I would remember to turn it on when I wanted it. I don’t think that this would lead to anyone sending more data than necessary to a site, it would simply make it easier to send the right data to the site.
What do you think Bill? Would you consider it for V2?
The fact that the checkbox isn’t defaulting to checked in this case is just plain a bug.
As to the placement of the checkbox, one could argue it belongs on the front page, on the details page, and on the edit page. That’s a lot. But it makes sense.
If the bug gets fixed and the checkbox becomes persistent, I wouldn’t care as much about where it is placed, but I have to admit, it would be nice to see what the state of the checkbox is when I’m altering data on the card.
Thanks Bill for responding so quickly.