Adgangskontrol via en database
Jeg har lavet et simpelt CMS system som man kun skal have adgang til via en adgangskontrol. Jeg gemmer username og password i databasen og bruger nedenstående script:<%@ page language="C#" runat="server" debug="true"%>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<script runat="server">
void Authorize(Object Sender, EventArgs e){
int Login_ID = DBAuthenticate(Brugernavn.Text, Adgangskode.Text);
if (Login_ID > 0){
Session["Godkendt"] = "Godkendt";
Response.Redirect("../CMSstart.aspx");
}
else
{
Response.Redirect("default.aspx");
}
}
int DBAuthenticate(string username,string password){
SqlConnection OurConnection;
SqlCommand OurCommand;
SqlDataReader OurDataReader;
string SQLString;
int Login_ID;
OurConnection = new SqlConnection("Server=localhost;uid=sa;password=;database=Data/Database");
OurConnection.Open();
OurCommand = new SqlCommand("Select * from Login", OurConnection);
OurDataReader = OurCommand.ExecuteReader();
if (OurDataReader.Read()){
if (OurDataReader["Password"].ToString() == password){
Login_ID = Int32.Parse(OurDataReader["LoginID"].ToString());
}else{
Login_ID = 0;
}
}else{
Login_ID = 0;
}
OurDataReader.Close();
OurConnection.Close();
return Login_ID;
}
</script>
<html>
<head>
<title>Login</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="Hanstholm" id="Hanstholm" runat="server">
<asp:TextBox ID="Brugernavn" Font-Name="verdana" Font-Size="10" runat="server" Width="150" />
<asp:TextBox ID="Adgangskode" runat="server" TextMode="Password" Width="150" />
<asp:Button Text="Ok" Width="90" OnClick="Authorize" runat="server" />
<asp:Button Text="Annuller" Width="90" OnClick="Authorize" runat="server" />
</form>
</body>
</html>
Jeg tror problemet ligger i session'en da scriptet konstant sender mig vidre til default.aspx istedet for at godkende mig og sende mig vidre til CMSstart.aspx
