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
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
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.
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...
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
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.
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.
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?
At tjeke om brugeren har indtastet denrigtige brugernavn og password virker, men sessionen virker ikke på andre sider hvis brugeren har indtastet forkerte oplysninger.
>> 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
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)
>>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..
Synes godt om
Ny brugerNybegynder
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.