Avatar billede pedepede Nybegynder
07. august 2008 - 22:42 Der er 3 kommentarer og
1 løsning

Problemer med Authentication i .net 2.0

Hej med jer
Jeg har brugt det indbyggede authentication-system som er i .net 2.0 til et website. Login skal kunne lade sig gøre gennem webservices, og jeg vil gerne have at metoden returnerer brugeres userkey, og har der derfor følgende kode:

    [WebMethod]
    public string LogIn(string UserName, string Password)
    {
        FormsAuthentication.SignOut(); //Start by logging out of security reasons - removes cookie

        if (Membership.ValidateUser(UserName, Password))
        {
            FormsAuthentication.SetAuthCookie(UserName, false);

            MembershipUser u;
            u = Membership.GetUser();
            return u.ProviderUserKey.ToString();
        }
        else ...

Dette virker bare ikke. Jeg får fejlen:

System.NullReferenceException: Object reference not set to an instance of an object.
  at Authentication.LogIn(String UserName, String Password)

Hvis jeg allerede er logget ind, men forsøger at logge ind en gang til, så kommer der ingen fejl.

Er der nogen som kan gennemskue hvordan dette fikses??

Mvh
Peter
Avatar billede annxii Nybegynder
09. august 2008 - 16:03 #1
nu skriver du jo ikke om din login-metode er en del af den page, der skal håndtere login eller om du har placeret metoden i en ekstern class, men det kunne godt se ud som om det var det sidste eftersom du for en null-exception. Hvis metoden er en del af en ekstern class kan du kun kalde den via en instance af den class, eller også kan du lave den metode static.

Enten:
Authentication auth = new Authentication();
auth.LogIn(String UserName, String Password);

Eller ændre metode til:
public static string LogIn(string UserName, string Password)

...men det er lidt svært at vide at vide da det ser ud som om det er din brug af metoden der går galt og ikke metoden i sig selv. Hvis det ikke virker så prøv at skriv din kode hvor du gør brug af metoden.
Avatar billede pedepede Nybegynder
09. august 2008 - 21:12 #2
Jeg får jo kun en exception hvis jeg ikke er logget ind i forvejen. ER jeg derimod logget ind bliver userkey returneret som ønsket. Derfor tror jeg snarere, at Membership.GetUser(); bliver kaldt på et tidspunkt hvor brugeren ikke er authenticated. Jeg ved ikke hvordan den metode er implementeret. Som sagt gør jeg bare brug af det indbyggede system.

Login skal foregå gennem en Flashapplikation.
Avatar billede annxii Nybegynder
09. august 2008 - 21:37 #3
eftersom det er din LogIn(string UserName, string Password) den crasher på så må du jo også eksekvere den et sted. Kan du ikke vise koden fra hvor det bliver gjort?
Avatar billede pedepede Nybegynder
12. september 2008 - 17:20 #4
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