Override User.Identity.Name or Custom IIdentity

Discussion in 'ASP .Net Security' started by Corker, Mar 8, 2010.

  1. Corker

    Corker Guest

    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.
     
    Corker, Mar 8, 2010
    #1
    1. Advertisements

  2. Corker

    Joe Kaplan Guest

    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.
     
    Joe Kaplan, Mar 10, 2010
    #2
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.