Override User.Identity.Name or Custom IIdentity



Hi I am using the standard asp.net login control and it is currently working
well where my users can login with their email address and password.
I want to modify this so they can enter their email address or membership
number and password. I have a custom membership provider class where I check
the login details based on whether an email or number has been entered, again
this is fine.
Finally, my problem is that User.Identity.Name is whatever was entered in
the login box, I want this to always be an email address so can you suggest
how I can override this value?
I created a Custom Identity class and tried assigning that in Global.asax
Application_AuthenticateRequest, but it says it cannot resolve the type
MyNamespace.CustomIdentity. I'm not sure what to try next.

Joe Kaplan

You are close to getting this. The authenticate event on the ASP.NET
pipeline is the proper event to handle. Basically, you want your custom code
to run after the various authentication mechanisms like forms auth and
membership but before authorization takes place. Essentially, you want to be
the last handler of the Authenticate event. Here, you can swap out the
principal for whatever you want.

Your issue sounds like a simple problem related to type references where the
..NET framework cannot find your class by the name you tried to use for it.
This is a more generic issue that you should be able to figure out. Using
the object browser to find the real name of your type may be helpful.

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Latest member

Latest Threads