On an ASP.NET page, I am using the same form for login and registration. There are two login fields and seven registration fields. Something like this:
txtUsername | txtPassword
txtNewUsername | txtNewPassword | txtNewPasswordRepeat | txtFirstName | txtLastName | txtPhone | txtEmail
btnSubmit
In each case, all the fields are compulsory (ie username and password are compulsory for logging in, and the other seven fields are compulsory for a new registration). There is a single submit button. This layout of the form is imposed by the client and is not open to modification.
Now, my question is, how to validate the form? Initially, I cooked up a customized server-side validation system, but the client insists on using the standard asp.net validation controls (including the custom validator if necessary).
To validate the form, first I have to determine if the client is doing login or validation, and only then can I decide whether to validate one set of fields or another. So the first operation is to see if the user has filled in username or newUsername and use that to determine whether a login or a new registration is taking place. Since there is a single submit button, I cannot use validation groups to distinguish between the two sets of controls.
I thought about using a custom validator for the whole thing, but it is connected to a single control, so that does not solve the problem. I also thought about creating a new validation control, but again the problem is the same - any class inheriting from WebControls.BaseValidator is connected to a single form control.
Given the above constraints, what to do? Any suggestions welcome...