Avatar billede jonas82 Nybegynder
16. august 2006 - 14:13 Der er 9 kommentarer og
1 løsning

PasswordRecovery ud fra email

Jeg prøver at få PasswordRecovery kontrollen til at tage Email i stedet for brugernavn. Nedenstående kode virker fint hvis man indtaster email, men den virker også stadig med brugernavn, hvilket jeg ikke ønsker. Jeg forstår ikke den stadig kan bruger Username da jeg sætter det til "".


protected void PasswordRecovery1_VerifyingUser(object sender, LoginCancelEventArgs e)
{


String UserName = Membership.GetUserNameByEmail(PasswordRecovery1.UserName);

if (!string.IsNullOrEmpty(UserName))
PasswordRecovery1.UserName = Membership.GetUserNameByEmail(PasswordRecovery1.UserName);

else
PasswordRecovery1.UserName = "";

HttpContext.Current.Response.Write("PWR username: " + PasswordRecovery1.UserName);
Avatar billede jonas82 Nybegynder
16. august 2006 - 14:15 #1
Hov noget mangler i funktionen. Her er den igen:

protected void PasswordRecovery1_VerifyingUser(object sender, LoginCancelEventArgs e)
    {
        String UserName = Membership.GetUserNameByEmail(PasswordRecovery1.UserName);

        if (!string.IsNullOrEmpty(UserName))
        {
            PasswordRecovery1.UserName = UserName;
        }
        else
        {
            PasswordRecovery1.UserName = "";
        }
    }
Avatar billede jonas82 Nybegynder
16. august 2006 - 14:19 #2
Avatar billede snepnet Nybegynder
16. august 2006 - 21:14 #3
Hvis du ønsker at annullere - skal du sætte e.Cancel = true.
Mvh
Avatar billede jonas82 Nybegynder
16. august 2006 - 21:25 #4
Pointen var at jeg ved at sætte Username til "" regnede med at den ville komme med en fejl fordi den ikke kunne finde Brugernavnet(emailen).

Det er måske lidt et hack :-)
Avatar billede snepnet Nybegynder
16. august 2006 - 21:44 #5
Argumentet er der for at du kan angive cancel på det, hvis du ønsker at afbryde login processen - du opnår det du vil med det, hvilket ikke er tilfældet ved at sætte en anden tekst på kontrollen.
Mvh
Avatar billede jonas82 Nybegynder
16. august 2006 - 21:57 #6
Som det er nu...

- Hvis jeg indtaster noget volapyk reagerer den fint med: We were unable to access your information. Please try again.

- Hvis jeg indtaster email eller brugernavn sender den en mail med nyt pw.

Efter e.Cancel:

- Hvis jeg indtaster email sender den korrekt nyt pw.

- Alt andet indtastet giver hverken fejl eller sender en email.

protected void PasswordRecovery1_VerifyingUser(object sender, LoginCancelEventArgs e)
    {
        String UserName = Membership.GetUserNameByEmail(PasswordRecovery1.UserName);

        if (!string.IsNullOrEmpty(UserName))
        {
            PasswordRecovery1.UserName = UserName;
        }
        else
        {
            e.Cancel = true;
        }
    }
Avatar billede snepnet Nybegynder
16. august 2006 - 23:27 #7
Det er vel også som det skal være .... Hvis du gerne vil have en meddelelse til brugeren kommer du nok til at skrive den selv.
Kontrollen afbruder blot sin rutine når du laver er cancel.
Mvh
Avatar billede jonas82 Nybegynder
17. august 2006 - 12:30 #8
Jo jeg kan selvfølgelig selv skrive fejlen ud. Jeg forstår bare ikke hvordan den finder email adressen for et brugernavn, når jeg sætter brugernavnet til "". Så burde den vel komme med den normale fejl: We were unable to access your information. Please try again.

Du må gerne lægge svar. Tak for hjælpen.
Avatar billede snepnet Nybegynder
17. august 2006 - 23:08 #9
Well.... Når du laver en cancel - køres den normale kode ikke, og du får derfor ikke sat meddelelsen.
Mvh
Avatar billede snepnet Nybegynder
17. august 2006 - 23:08 #10
Og et svar
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester