Creating a Dual Purpose Login Page

The code sample for this appendix includes a login page that uses the ASP.NET Login control for traditional login and the <object> tag for those who have already associated their information cards with their account. One of the challenges with this is making sure that the <object> tag is only invoked when the user clicks the CardSpace login button. Since we can’t have two active <form> tags in an ASP.NET page, I had to learn a little bit more about <object> tags, how they are instantiated, and how to control that instantiation with javascript.

First, I placed the <object> tag declaration in the header section of the HTML page. I also had to use the declare attribute of the tag to indicate this was only a declaration so that the CardSpace object would not be instantiated until it is referenced by the CardSpace submit button:

<object declare id="informationCard"
type="application/x-informationCard" name="informationCard" >
...
</object>

Next, I created a javascript function, SelectInformationCard( ), that would instantiate the CardSpace object and put the value it returns into a hidden text field:

<script type="text/javascript" language="javascript">
  function SelectInformationCard( )
  {
    var infoCardObject =document.getElementById("informationCards");
    var hiddenToken = document.getElementById("hiddenXmlToken");
    hiddenToken.value = infoCardObject.value;
  }
</script>

Within the <form> tag, I arranged the Login control and my CardSpace image button, along ...

Get Learning WCF now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.