Features
Easy to use syntax
One of my main goals was to have an easy to use markup syntax and intellisense support.
I don't want to type in all those namespace URIs...
<lp:InfoCardSelector runat="server" ID="_selector_sic" AutoPostback="true" IssuerType="SelfIssued">
<lp:ClaimType Name="givenname" />
<lp:ClaimType Name="surname" />
<lp:ClaimType Name="email" />
</lp:CardSpaceSelector>
Clean markup and independence of the server form
The emitted markup works with Firefox and IE. I also made sure that the <object>
tag is placed outside of the postback form. This allows you to have multiple postback
controls on the form without triggering the identity selector.
Support for standard InfoCard image
You can choose between all standard sizes of the official InfoCard
image. You can also supply your own image and dimensions

Designer integration
I never use the designer - but I acknowledge the fact that some people
do ;) The control renders correctly in the designer and has an editor
to setup the required/optional claims (including intellisense support).

Event driven
The control fires an event when a token is submitted. When the
AutoDecryptToken property is set to true, you can also retrieve the
decrypted token from TokenSubmittedEventArgs.Token.
protected void _selector_sic_TokenSubmitted(object sender, TokenSubmittedEventArgs e)
{
string xmlToken = e.Token;
}
Conditional rendering
You can choose to render the control only if the client browser supports
InfoCards. You can specify an alternative <div /> that would render in that
case (e.g. to tell the user how to get CardSpace).
Decoupling
I intentionally didn't couple the control with any user management semantics
(like membership) or decryption clases (like the TokenProcessor). It is totally
up to you how to proceed after you received the encrypted token. This is considered
a feature ;)
Properties
InfoCard setup
IssuerType
This enum has two values ‘SelfIssued’ and ‘Managed’. If you select ‘SelfIssued’
then the issuer URI for self-issued cards will be emitted. If you select ‘Managed’
you have to set the issuer URI yourself. Defaults to 'SelfIssued'
Issuer and IssuerPolicy
Specifies the URIs for the issuer and the issuer policy.
TokenType
Specifies the token type. Defaults to SAML 1.0.
PrivacyUrl and PrivacyVersion
Specifies to the URL and version of the associated privacy policy (if any).
Image
ImageUrl
Specifies a custom image to display. Defaults to the official InfoCard
logo.
StandardImageSize
Selects one of the standard images sizes for the official InfoCard logo. Defaults
to 114x80.
Width & Height
Specifies the size of the image in pixels. Only relevant when a custom image is
used.
Rendering
RenderOnlyIfSupported
When set to true, the control will only render if the client browser supports CardSpace.
You have to embed the control into a <div /> and specify the name in the DivToRender
attribute. Defaults to false.
DivToRender
Specifies which <div /> to render/make invisible based on client support.
UnsupportedDiv
Optionally specifies a <div /> to render when CardSpace is not supported on
the client.
RenderMode
Choose between static and dynamic rendering. Static preserves the space
for the control on the client. Defaults to Static.
Misc
HiddenFieldName
Name of the hidden field used to transmit the token back to the page. Defaults to
__XMLTOKEN.
AutoPostBack
Specifies if the control posts back after a card has been selected. Defaults to
false.
TriggerOnLoad
Specifies if the identity selector should be invoked directly after the page has
finished loading. Defaults to false.
XmlToken
Holds the encrypted token after the user has selected a card.
AutoDecryptToken
Automatically decrypts the incoming token and puts an instance of the Token
class on the event args.
RequireSSL
If set to true, the control will make sure that the current connection is
secured before decrypting the token.