Avatar billede argo Nybegynder
12. april 2006 - 15:13 Der er 25 kommentarer og
1 løsning

login side

Er det nogen som kan give et eksempel, hvordan man laver en login side med session i .net, Jeg bruger vb samt mssql.
Avatar billede dr_chaos Nybegynder
12. april 2006 - 17:45 #1
jeg vil ikke copy paste koden. Men her er en side med et komplet eksempel.
Den er godt nok lavet til access, men det er bare connectionstring som skal ændres.
http://www.daniweb.com/techtalkforums/thread6028.html
Avatar billede arriva Nybegynder
12. april 2006 - 20:16 #2
Sådan noget lign??

dim conUser as new sqlconnection([indsæt connectionstring])
conuser.open
dim cmdUser as new sqlcommand("SELECT * FROM Users WHERE Username=@username AND Password=@password",conuser)
cmduser.parameters.addwithvalue("@username",txtUsername.text)
cmduser.parameters.addwithvalue("@password",txtPassword.text)
dim dtrUser as sqldatareader = cmduser.executereader
if dtruser.hasrows then
  session("Username")=dtruser("Username").tostring
end if

og så tilføj et tjek på hver side a la:
if string.isemptyornull(session("Username").tostring) then
  response.redirect("login.aspx")
end if
Avatar billede arriva Nybegynder
12. april 2006 - 20:17 #3
Btw. du bør måske kigge på Formsauthentication.. er noget mere interessant når du alligevel arbejder med .NET.
Avatar billede websam Nybegynder
12. april 2006 - 21:04 #4
arriva >> Det kan godt være jeg ikke har læst nok på det, men hvordan vil du gribe det med Formsauthentication hvis du kun har dele af en side der skal beskyttes f.eks. en brugergruppe har lov til at oprette/redigere/slette en anden brugergruppe har kun lov til at oprette/redigere, men må ikke slette ?

argo >> Jeg benytter mig af 2 session's ved login, en til der sættes til true, og en der bestemmer brugergruppe.

Hvis brugerens user/pass validere korrekt :

Session("login") = True
Session("gruppe") = 1 el. 2 el. 3 og så videre afhænnig af hvor mange grupper du har

Mine sider ser så således ud :

If session("login") = True Then
  '--- En bunke kode og diverse andet som en bruger må se/bruge
Else
  '--- Sender brugeren til login side
End if

Min session("gruppe") bruger jeg så til at styrre hvem der må gøre hvad på de forskellige sider der kræver login.

/Websam
Avatar billede arriva Nybegynder
12. april 2006 - 21:06 #5
Det er jo netop noget af det smarte ved formsauthentication.. du kan give roller..
så kan du hurtigt tjekke med eg.
if user.isinrole("Administrator") then...
Avatar billede arriva Nybegynder
12. april 2006 - 21:11 #6
Her er et eksempel (efter at vi har tjekket at brugeren må logge ind):
' Lav ticket med roles
Dim ticket As New FormsAuthenticationTicket(1, _
                                            dtrAuth("UserID").ToString, _
                                            DateTime.Now, _
                                            DateTime.Now.AddMinutes(30), _
                                            True, _
                                            "Administrator", _
                                            FormsAuthentication.FormsCookiePath)
' Hash ticket
Dim hash As String = FormsAuthentication.Encrypt(ticket)

' Lav cookie med krypteret info
Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName, hash)

' Sæt cookie expire
If ticket.IsPersistent Then cookie.Expires = ticket.Expiration

' Send cookie
Response.Cookies.Add(cookie)
Avatar billede websam Nybegynder
12. april 2006 - 21:17 #7
Den omtalte cookie ligger den så på brugerens maskine eller på serveren ?
Avatar billede arriva Nybegynder
12. april 2006 - 21:23 #8
hos brugeren - derfor den tilføjes response og krypteres. Læg dog mærke til at den ikke indeholder password.
Avatar billede dr_chaos Nybegynder
12. april 2006 - 21:24 #9
Man bruge kun den cookie hvis man vil benytte autologin.
Avatar billede dr_chaos Nybegynder
12. april 2006 - 21:28 #11
Bruger du asp.net 2.0 ?
Avatar billede websam Nybegynder
12. april 2006 - 21:45 #12
Jeg har ikke meget fidus til det cookie værk så derfor session's

Ja jeg bruger 2.0
Avatar billede dr_chaos Nybegynder
12. april 2006 - 21:48 #13
tsk tsk websam det var nu ikke til dig men til argo :)
I asp.net 2.0 kan du bruge cookieless authentication hvis man vil.
Avatar billede websam Nybegynder
12. april 2006 - 22:01 #14
ok, sorry skal nok lade være med at spamme mere i denne tråd ;o)

/Websam
Avatar billede dr_chaos Nybegynder
12. april 2006 - 22:08 #15
hehe det er bare i orden. Ved ikke hvad argo mener :)
Synes ikke det er spam bare udtryk for forskellige synspunkter. Det er en ganske god ting.
Avatar billede websam Nybegynder
12. april 2006 - 22:30 #16
Det kan godt være jeg tænker "old-fasion" men jeg mener stadigt metoden med session's sat ved login frem for authentication igennem config filen er mere fleksibel i det lange løb, men det er jo bare min holdning til det ;o)

Da jeg tit og ofte har sider hvor det kun er dele på de forskellige sider der skal beskyttes bruger jeg session's.

/Websam
Avatar billede arriva Nybegynder
12. april 2006 - 22:34 #17
Nu syntes jeg du blander to ting sammen. Der sker jo ikke nogen authentication igennem din config fil. Der er intet der forbyder at user credentials ligger på eg. en mssql server. Desuden kan du ikke sige at formsauthentication og metoden med session er vidt forskellig. Formsauth. bruger også sessions. Det er kun, som dr_chaos nævner, hvis du ønsker at lave et "husk mig"-login.
Avatar billede websam Nybegynder
12. april 2006 - 23:03 #18
Ok, det var nu ikke min mening at blande tingene sammen, mere et udtryk for min fortrukne måde at håndtere tingene på ;o)

/Websam
Avatar billede argo Nybegynder
16. april 2006 - 14:26 #19
tak til jer allesammen:)
jeg bruger asp.net 1.1, Ariiva>> jeg kan derfor ikke få namespaset hasrows og isemptyornull frem, har du eller en anden har en forslag til det?
Avatar billede argo Nybegynder
16. april 2006 - 14:33 #20
ups jeg ment arriva:)
Avatar billede arriva Nybegynder
16. april 2006 - 14:51 #21
1) Du kan vel bruge read i stedet.. if dtruser.read ...
2) du kunne f.eks. bruge if session("Username").tostring.length>0
Avatar billede argo Nybegynder
17. april 2006 - 23:39 #22
At tjeke om brugeren har indtastet denrigtige brugernavn og password virker, men  sessionen virker ikke på andre sider hvis brugeren har indtastet forkerte oplysninger.
Avatar billede arriva Nybegynder
18. april 2006 - 13:36 #23
Jeg har lidt svært ved at forstå dig, men jeg tror problemet måske er at du først skal tjekke om session'en er null, ellers giver .tostring en fejl.

Prøv:
if not isdbnull(session("Username")) then
  if session("Username")<>"" then
    ...
  end if
end if
Avatar billede argo Nybegynder
20. april 2006 - 00:04 #24
>> Arriva igen tak for din hjælp:) Jeg kan godt forstå, at du har svært ved at forstå mig.

Grundet till det er, at udover at jeg har lidt svært ved at skrive dansk så har jeg også et meget begrænset kendskab til .NET, Ellers har jeg tilføjet følgende til at lave tjek på siderne altså efter en bruger har forsøgt at logge sig ind på siden. Er det ikke det hvad du mener jeg skulle gør, og det virker:)

If Not Page.IsPostBack Then
            If Not IsDBNull(Session("Username")) Then
                If Session("Username") <> "" Then
                dd  If (Session("Username").ToString.Length <> 0) Then
                       
                    End If
                Else
                    Response.Redirect("login.aspx")
                End If
            End If
        End If
Avatar billede arriva Nybegynder
20. april 2006 - 11:25 #25
jo.. du kunne nu nok udelade den sidste if, da du jo allerede har tjekket at den ikke er lig "".. Stadigvæk vil jeg nu anbefale dig at kigge lidt på formsauthentication.. så kunne du nøjes med en "if not user.identity.isauthenticated then..." ;o)
Avatar billede argo Nybegynder
23. april 2006 - 12:22 #26
>>Arriva, når jeg fjerne den sidste if-sætning så virker det faktisk ikke, man skulle ellers tror at det ville virke, jeg ved hvad jeg gør forkert..
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