A: 

You you actually typing an identifier in the box before clicking the button? You must.

And you can avoid the nasty error for people who forget to type an identifier by adding a RequiredFieldValidator control that points to the text box and then checking that if (Page.IsValid) in your button's click handler before calling LogOn.

Hopefully this helps. Have you considered using the OpenIdLogin control? If you're shooting for easiest to add, that's the easiest, as you don't have any code at all -- just the one tag.

Also, be sure to add ValidateRequest="false" to your <%@ Page %> tag at the top of your login page. Otherwise your users will see occasional random failures because ASP.NET incorrectly interprets some OpenID authentication responses to be attacks. So for example, if the top line of your .aspx was:

<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="login.aspx.cs" Inherits="OpenIdRelyingPartyWebForms.login" %>

Make it

<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="True" CodeBehind="login.aspx.cs" Inherits="OpenIdRelyingPartyWebForms.login" %>
Andrew Arnott
can you elaborate on the ValidateRequest bit, or provide a link? Sounds like something I need to know. ;)
jalf
@jalf, I've enhanced my answer.
Andrew Arnott