ASP.NET / Sikkerhed / En bruger klasse
|
Søger du et "rigtigt" ASP.NET kursus?
Ja, jeg holder ikke kun fjernundervisningskurser
- jeg kan også komme ud i din virksomhed og undervise med
udgangspunkt i jeres data og udfordringer.
|
|
En bruger klasse
Når man arbejder med sites med en sikkerhedsmodel kan det være meget nyttigt med klasse man kan bruge i relation til brugerhåndteringen - sådan en klasse kan gøre mange ting for os, men umiddelbart kunne lave én der har følgende metoder og egenskaber
Egenskaber
Metoder
- GodkendBruger(Brugernavn, Password)
- OpretNyBruger(Brugernavn, Password, Email)
Om klassen trækker sine fra en database eller et XML dokument er ikke så afgørende, men lad os bare kigge på, hvordan man kan gøre det hvis man har sine brugere i en database.
Den ydre ramme til klassen kunne se sådan her ud i VB - jeg har valgt at lægge de to metoder ind i New metoden på klassen, det syntes jeg virkede mest naturligt.
Public Class Bruger
Public Sub New(ByVal Brugernavn As String, ByVal Password As String)
' Slå op i databasen og giv egenskaberne værdier
End Sub
Public Sub New(ByVal Brugernavn As String, ByVal Password As String, ByVal Email As String)
' Opret en ny bruger i databasen og giv egenskaberne værdier
End Sub
Dim _Brugernavn As String
Dim _Email As String
Dim _Godkendt As Boolean
Public Property Brugernavn() As String
Get
Return _Brugernavn
End Get
Set(ByVal Value As String)
_Brugernavn = Value
End Set
End Property
Public Property Email() As String
Get
Return _Email
End Get
Set(ByVal Value As String)
_Email = Value
End Set
End Property
Public Property Godkendt() As Boolean
Get
Return _Godkendt
End Get
Set(ByVal Value As Boolean)
_Godkendt = Value
End Set
End Property
End ClassKlassen her kan vi jo bruge i alle vores filer, men i første omgang skal den jo bruges i vores login.aspx og det kunne se sådan her ud (det er kun codebehind delen der er interessant)
Private Sub loginBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles loginBtn.Click
If Page.IsValid Then
Dim objBruger As Bruger = New Bruger(Username.Text, Userpass.Text)
If objBruger.Godkendt Then
FormsAuthentication.RedirectFromLoginPage(Username.Text, False)
Else
Msg.Text = "Du har fået tastet forkert brugernavn eller password"
End If
End If
End SubHusk at sætte imports i toppen af koden også så den kender dit Bruger objekt:
Imports System.Web.Security
Imports Fjernundervisning_eksempel_VB.Bruger
Database arbejdet
Så mangler vi "bare" at få klassen til at snakke med en database. Det burde ikke være så svært med den ADO viden vi allerede har
. Kontrollen af brugernavn og kodeord kunne laves sådan her:
Public Sub New(ByVal Brugernavn As String, ByVal Password As String)
Dim strConnection As String = ConfigurationSettings.AppSettings("ConnectionStr")
Dim strSQL As String = "SELECT * FROM tblBrugere WHERE Brugernavn='" _
+ Brugernavn + "' AND Password='" + Password + "'"
Dim objConnection As OleDbConnection = New OleDbConnection(strConnection)
Dim objCommand As OleDbCommand = New OleDbCommand(strSQL, objConnection)
Dim objDatareader As OleDbDataReader
objConnection.Open()
objDatareader = objCommand.ExecuteReader()
If objDatareader.Read() Then
Me.Godkendt = True
Me.Brugernavn = objDatareader("Brugernavn")
Me.Email = objDatareader("Email")
Else
Me.Godkendt = False
End If
End SubHusk at brug af database også kræver imports
Imports System.Data
Imports System.Data.OleDb
Imports System.Configuration
Og husk også at du skal have en ConnectionStr i din web-config, der på passendevis peger på din database OG selvfølgelig en database.
Når du har betalt for kurset får du adgang til øvelser til hver lektion.
Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.<<- Opret cookie selv