Hej, jag har en loginsida som är kodad i Web Matrix, den funkar jättebra hämtar info från databasen mm. Problemet är att jag vill kunna ha olika sidor som finns inlaggda i databasen redan från start i en egen kolumn knuten till var användare för sig då jag vill att olika användare ska få tillgång till olika sidor. Är det nån som kan hjälpa mig skulle jag vara mycket glad... Det du säger är att du vill ha en personifierad startsida eller? Eller en sida som användaren själv kan fylla med information eller vad. Frågan är lite svår att svara på rakt av, kan du utveckla frågan? Hej, vad jag menar är att tex. ha 3 fält i databasen, Användarnamn - Lösenord - Sida Om du lagrar sidans namn i databasen kan du väl t ex göra Då är det ugefär som profiler du vill bygga upp. Alltså att vissa användare skall komma till en viss grupp av information beroende på vad de tillhör. Försökte men fick inte till det, har du tid eller lust att hjälpa mig med detta? Vi säger att du har en tabell som heter users, i den lägger du till ett fält som heter usergroupid int. Sen skapar du en tabell som heter UserGroup, kastar in usergroupid, usergroupname (varchar 50) och usergroupurl (varchar 50) Hej igen, det är precis så jag hade tänkt, försökte men fick inte igång det i alla fall. Jag förstår inte riktigt hur jag ska få allt att sitta ihop, jag har utgått från den koden som jag skcikade i orginalfrågan. Testa att lägga in den här koden:Login & Databas
Här är koden:
<code>
<%@ Page Language="VB" %>
<script runat="server">
Function GetUser(ByVal name As String, ByVal password As String) As System.Data.DataSet
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=d:\test\login.mdb"
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim queryString As String = "SELECT [login].* FROM [login] WHERE (([login].[name] = @name) AND ([login].[password] = @password))"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dbParam_name As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_name.ParameterName = "@name"
dbParam_name.Value = name
dbParam_name.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_name)
Dim dbParam_password As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_password.ParameterName = "@password"
dbParam_password.Value = password
dbParam_password.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_password)
Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)
Return dataSet
End Function
Sub LoginBtn_Click(Sender As Object, E As EventArgs)
If Page.IsValid Then
Dim userDS As New System.Data.DataSet
userDS = GetUser(UserName.Text, UserPass.Text)
If userDS.Tables(0).Rows.Count = 1 Then
FormsAuthentication.RedirectFromLoginPage(UserName.Text, False)
Else
Msg.Text = "Fel Testa igen!"
End If
End If
End Sub
</script>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
<form runat="server">
<h2>Login Page
</h2>
<hr size="1" />
<table>
<tbody>
<tr>
<td>
Username:</td>
<td>
<asp:TextBox id="UserName" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="Requiredfieldvalidator1" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserName"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
Password:</td>
<td>
<asp:TextBox id="UserPass" runat="server" TextMode="Password"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="Requiredfieldvalidator2" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserPass"></asp:RequiredFieldValidator>
</td>
</tr>
</tbody>
</table>
<asp:button id="LoginBtn" onclick="LoginBtn_Click" runat="server" text="Login"></asp:button>
<p>
<asp:Label id="Msg" runat="server" forecolor="red"></asp:Label>
</p>
</form>
</body>
</html>
</code>Sv: Login & Databas
Sv: Login & Databas
Tanken är att användarna skickas till olika sidor beroende på behörighet, så om användare "kalle" med lösen "hej" loggar in skickas han till "rapport.aspx" medans när användare "jeppe" med lösen "hello" loggar in skickas han till "kalender.aspx".
Jag vill kunna styra detta genom en Access databas där användarnamn och lösen är kopplat till en specifik sida om det är möjligt.
TackSv: Login & Databas
<code> Server.Transfer("peronligsida.aspx") när du har kollat att användaren är behörig.Sv: Login & Databas
Skapa då en tabell med vad gruppens id är, namnet och vilken url som avses. Sedan lägger du till denna join på användaren så när personen kommer in tittar du till vilken grupp han/hon hör och därmed navigerar personen dit.
Var det så du menade?Sv: Login & Databas
Sv: Login & Databas
Säg,
1 Gäst /default.aspx
2 Kille /male.aspx
3 Tjej /female.aspx
Nu har du en tabell där du kan välja 1 av tre alternativ på din användare. Antingen är den normal, dvs att inget är valt, sen 2 för kille och 3 för tjej. Om du nu kastar in 1,2 eller 3 på din tabell för något konto har du alltså bestämt vilken användartyp personen är.
select ...., usergroupurl
from users u, usergroup ug
where u.usergroupid = ug.usergroupid
and userid = 12
nu har du för user 12 fått tag på dess usergroupurl och då när personen loggat in kör du bara helt enkelt
If Len(UserGroupUrl) > 0 Then
Response.Redirect (usergroupurl, true)
Else
' troligen inte inloggad eller att någon usergroupid inte är tilldelad
End If
Hoppas du förstår exemplet. Var det så du menade?Sv: Login & Databas
Sv: Login & Databas
Sub hamtaKat()
Dim kat As String
Dim Namn As String
Dim Admin As String
Dim id As String = Request.Form("UserName")
Dim connectionString As String = "server='(local)'; trusted_connection=true; Database='din databas'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim queryString As String = "SELECT [login].* FROM [login] WHERE ([login].[Anvnamn] = @id)"
Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)
sqlCommand.Parameters.Add("@id", System.Data.SqlDbType.VarChar).Value = id
sqlConnection.Open
Dim dataReader As System.Data.SqlClient.SqlDataReader = sqlCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
dataReader.read()
kat = dataReader("Kategori")
Namn = dataReader("Namn")
Session("Anv") = Namn
If (kat = "Admin")
Response.redirect("/admin/default.aspx")
Else
Response.redirect("/user/start.aspx")
End If
End Sub
Du får lägga till en kategoritabell i din databas där du läser av värdet som ska jämföras. Sen under sub button_click ändrar du bara:
If userDS.Tables(0).Rows.Count = 1 Then
FormsAuthentication.RedirectFromLoginPage(UserName.Text, false)
hamtaKat()
Else
Msg.Text = "Fel användarnamn eller lösen, försök igen."
End If