Avatar billede per2edb Praktikant
15. september 2009 - 16:42 Der er 7 kommentarer og
1 løsning

Adgangskontrol i ASP.NET

Jeg har en ASPX side med Brugernavn og Password. Ved LogIn skal de kalde Access DB AccessDataSource. Hvis Brugernavn og Password passer skal der hoppes til ny side.
Mit problem er jeg ikke er nok inde i ASP.Net programering. Kan i hjælpe med de nødvendige koder på linierne (se nedenfor):
1)
<<  ----  Hvis der trykkes på logIn så dette: ----- >>
2)
<<  ---- Hvis Brugernavn og Adgangskode passer sammen så:  Hop til ny side herfra  ---  >>


<table style="width: 100%; height: 100px;">
    <tr>
        <td style="width: 266px; height: 9px;"></td>
        <td style="height: 9px"></td>
    </tr>
    <tr>
        <td style="width: 266px">
       
        </td>
        <td valign="top">
            Brugernavn:
            <input name="ControlBrugernavn" type="text" /><br />
            <br />
            Password:&nbsp;&nbsp;
            <input name="ControlAdgangskode" type="password" style="width: 148px" />
            <input name="Submit1" type="submit" value="Log In" onclick="Check" />
       

        </td>
    </tr>
</table>

<<  ----  Hvis der trykkes på logIn så dette: ----- >>


<asp:AccessDataSource id="AccessDataSource1" runat="server" DataFile="../App_Data/Password.mdb" SelectCommand="SELECT [Adg_Kode_ID] FROM [Adgangskoder] WHERE (([Brugernavn] = ?) AND ([Adgangskode] = ?))">
    <SelectParameters>
        <asp:sessionparameter Name="Brugernavn" SessionField="ControlBrugernavn" Type="String" />
        <asp:sessionparameter Name="Adgangskode" SessionField="ControlAdgangskode" Type="String" />
    </SelectParameters>
        </asp:AccessDataSource>
       

<<  ---- Hvis Brugernavn og Adgangskode passer sammen så:  Hop til ny side herfra  ---  >>
Avatar billede jimmydk Nybegynder
15. september 2009 - 19:33 #1
Ved ikke hvordan du sætter det op med en AccessDatasource, men den her login virker og er sat op til din database. :)

Codebehind login side

    protected void LoginK_Click(object sender, EventArgs e)
    {
        string Bruger = Convert.ToString(BrugernavnT.Text);
        string Pass = Convert.ToString(PasswordT.Text);

        OleDbConnection MyConnection = new OleDbConnection();
        MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Password.mdb.mdb";
        string strSQL = "Select * from Bruger where Brugernavn=@Bruger and Adgangskode=@adgangskode and Sstatus ='Aktiv'";
        OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection);

        objCommand.Parameters.Add("@Bruger", OleDbType.VarChar);
        objCommand.Parameters.Add("@adgangskode", OleDbType.VarChar);
        objCommand.Parameters["@Bruger"].Value = Bruger;
        objCommand.Parameters["@adgangskode"].Value = Pass;
        OleDbDataReader objDataReader = null;
        try
        {
            MyConnection.Open();
            objDataReader = objCommand.ExecuteReader();
            while (objDataReader.Read() == true)
            {
                Session["BrugerType"] = "Admin";


            }
            MyConnection.Close();
            objDataReader.Close();

        }
        catch (Exception exept)
        {
            Fejl.Text = Convert.ToString(exept);
        }

        if (Convert.ToString(Session["BrugerType"]) == "")
        {
           
            Fejl.Text = "der er fejl i brugernavn og password!";
           
        }
        else
        {
            Response.Redirect("DINSIDE.aspx");
        }

    }


Aspx siden

    <table style="width: 250px">
        <tr>
            <td class="overskrift" colspan="2">
                <asp:Label ID="Label1" runat="server" Text="Login"></asp:Label></td>
        </tr>
        <tr>
            <td>
                <asp:Label ID="Label3" runat="server" Text="Brugernavn:"></asp:Label></td>
            <td style="text-align: right">
    <asp:TextBox ID="BrugernavnT" runat="server" Width="100px"></asp:TextBox></td>
        </tr>
        <tr>
            <td>
                <asp:Label ID="Label2" runat="server" Text="Password:"></asp:Label></td>
            <td style="text-align: right">
    <asp:TextBox ID="PasswordT" runat="server" TextMode="Password" Width="100px"></asp:TextBox></td>
        </tr>
        <tr>
            <td colspan="2" style="text-align: right">
        <asp:Button ID="LoginK" runat="server" Text="Login" OnClick="LoginK_Click" /></td>
        </tr>
    </table>
<asp:Label ID="Fejl" runat="server" CssClass="fejl"></asp:Label>


Login check i codebehind på din masterpage


        if (Convert.ToString(Session["BrugerType"]) != "Admin")
        {
            Response.Redirect("Default.aspx");
        }
Avatar billede per2edb Praktikant
15. september 2009 - 21:37 #2
Først tak fordi du vil hjælpe.
Desværre må jeg have enfejl.
1)
Jeg har alle koder på aspx siden - er det ok?
2)
Source=|App_Data|Password.mdb.mdb"; - er det rigtigt med .mdb.mdb
3)
Jeg kan ikke få dette til at stemme ? Adgangskode=@adgangskode
Jeg har ændret =@adgangskode til =@Pass  er det OK?

Her er mine koder


<table style="width: 100%; height: 100%;">   
    <tr>
        <td style="width: 33px; height: 9px;"></td>
        <td style="width: 113px; height: 9px;">&nbsp;</td>
        <td style="height: 9px"></td>
    </tr>
    <tr>
        <td style="width: 33px; height: 92px;">
       
        </td>
        <td style="width: 113px; height: 92px;">
       
        </td>
        <td valign="top" style="height: 92px">
            Brugernavn:
            <input name="BrugernavnT" type="text" /><br />
            <br />
            Password:&nbsp;&nbsp;
            <input name="PasswordT" type="password" style="width: 148px" />
            <input name="LoginK" type="submit" value="Login" OnClick="LoginK_Click" />
       
        </td>
    </tr>
    <tr>
        <td style="width: 33px">
       
        &nbsp;</td>
        <td colspan="2" valign="top">
       
        &nbsp;</td>
    </tr>
</table>




  protected void LoginK_Click(object sender, EventArgs e)
    {
   
        string Bruger = Convert.ToString(BrugernavnT.Text);
        string Pass = Convert.ToString(PasswordT.Text);

        OleDbConnection MyConnection = new OleDbConnection();
        MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|App_Data|Password.mdb.mdb";
        string strSQL = "Select * from Adgangskoder where Brugernavn=@Bruger and Adgangskode=@Pass";
        OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection);

        objCommand.Parameters.Add("@Bruger", OleDbType.VarChar);
        objCommand.Parameters.Add("@Pass", OleDbType.VarChar);
        objCommand.Parameters["@Bruger"].Value = Bruger;
        objCommand.Parameters["@Pass"].Value = Pass;
        OleDbDataReader objDataReader = null;
        try
        {
            MyConnection.Open();
            objDataReader = objCommand.ExecuteReader();
            while (objDataReader.Read() == true)
            {
                Session["BrugerType"] = "Admin";


            }
            MyConnection.Close();
            objDataReader.Close();

        }
        catch (Exception exept)
        {
            Fejl.Text = Convert.ToString(exept);
        }

        if (Convert.ToString(Session["BrugerType"]) == "")
        {
           
            Fejl.Text = "der er fejl i brugernavn og password!";
           
        }
        else
        {
            Response.Redirect("Menu.aspx");
        }

    }
Avatar billede jimmydk Nybegynder
16. september 2009 - 08:15 #3
Her er hele siden som virker op til databasen.!

Hvis du gerne vil have det hele, så smid din mail så sender jeg siden og databasen til dig. :)


<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="c#" runat="server" >
   
void LoginK_Click(object sender, EventArgs e)
    {
 
        string Bruger = Convert.ToString(BrugernavnT.Text);
        string Pass = Convert.ToString(PasswordT.Text);

        OleDbConnection MyConnection = new OleDbConnection();
        MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|App_Data|Adgangskoder.mdb";
        string strSQL = "Select * from Adgangskoder where Brugernavn=@Bruger and Adgangskode=@Pass";
        OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection);

        objCommand.Parameters.Add("@Bruger", OleDbType.VarChar);
        objCommand.Parameters.Add("@Pass", OleDbType.VarChar);
        objCommand.Parameters["@Bruger"].Value = Bruger;
        objCommand.Parameters["@Pass"].Value = Pass;
        OleDbDataReader objDataReader = null;
        try
        {
            MyConnection.Open();
            objDataReader = objCommand.ExecuteReader();
            while (objDataReader.Read() == true)
            {
                Session["BrugerType"] = "Admin";


            }
            MyConnection.Close();
            objDataReader.Close();

        }
        catch (Exception exept)
        {
            Fejl.Text = Convert.ToString(exept);
        }

        if (Convert.ToString(Session["BrugerType"]) == "")
        {
         
            Fejl.Text = "Der er fejl i brugernavn og password!";
         
        }
        else
        {
            Response.Redirect("Menu.aspx");
        }

}
    </script>
<title>Untitled Document</title>
</head>
<body>
<form id="Form1" runat="server">
<table style="width: 100%; height: 100%;"> 
    <tr>
        <td style="width: 33px; height: 9px;"></td>
        <td style="width: 113px; height: 9px;"> </td>
        <td style="height: 9px"></td>
    </tr>
    <tr>
        <td style="width: 33px; height: 92px;">
     
        </td>
        <td style="width: 113px; height: 92px;">
     
        </td>
        <td valign="top" style="height: 92px">
            Brugernavn:  <asp:TextBox ID="BrugernavnT" runat="server" Width="100px"></asp:TextBox><br />
            <br />
            Password:  
            <asp:TextBox ID="PasswordT" runat="server" TextMode="Password" Width="100px"></asp:TextBox>
            <asp:Button ID="LoginK" runat="server" Text="Login" OnClick="LoginK_Click" />
     
        </td>
    </tr>
    <tr>
        <td style="width: 33px">
     
         </td>
        <td colspan="2" valign="top">
      <asp:Label ID="Fejl" runat="server" CssClass="fejl"></asp:Label></td>
    </tr>
   
</table>
</form>
</body>
</html>
Avatar billede per2edb Praktikant
16. september 2009 - 11:17 #4
Min mail er: mail2you@c.dk

Jeg kan ikke få det til at passe på min web side.
Du kan skrive til mig - men siden er her:

<%@ Page Language="VB" masterpagefile="../Faelles_Sider/ERP.master" title="ERP" %>
<asp:Content id="Content1" runat="server" contentplaceholderid="ContentPlaceHolder1">

<!-- Begin Page Content -->
<div id="page_content">
   
    <!-- Begin Content -->
    <div id="content">
               

<table style="width: 100%; height: 100%;">   
    <tr>
        <td style="height: 9px;"></td>
        <td style="height: 9px"></td>
    </tr>
    <tr>
        <td style="height: 92px;">
       
        </td>
        <td valign="top" style="height: 92px">
            Brugernavn:
            <input name="BrugernavnT" type="text" /><br />
            <br />
            Password:&nbsp;&nbsp;
            <input name="PasswordT" type="password" style="width: 148px" />
            <input name="LoginK" type="submit" value="Login" OnClick="LoginK_Click" />
        </td>
    </tr>
    </table>


<!-- Indsæt koder her -->
       
       
       
       

<!-- Slut Koder her -->   
           
 
    <!-- End Content -->
    </div>
<!-- End Page Content -->
</div>
</asp:Content>
Avatar billede jimmydk Nybegynder
16. september 2009 - 13:37 #5
Jeg kigger lige på det enten i aften hvis jeg når det, ellers tager jeg det i morgen.

Knægten har fødselsdag så han kommer lige i første række. ;-)
Avatar billede jimmydk Nybegynder
17. september 2009 - 07:43 #6
Her er det så det virker. :)
Husk at ændre stien til databasen.



<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="utf-8" MasterPageFile="~/MasterPage.master"%>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server" >
   
Private Sub LoginK_Click(ByVal sender As Object, ByVal e As EventArgs)
   
        Dim Bruger As String = Convert.ToString(BrugernavnT.Text)
        Dim Pass As String = Convert.ToString(PasswordT.Text)
   
        Dim MyConnection As New OleDbConnection()
        MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\eksperten\App_Data\Adgangskoder.mdb"
        Dim strSQL As String = "Select * from Adgangskoder where Brugernavn=@Bruger and Adgangskode=@Pass"
        Dim objCommand As New OleDbCommand(strSQL, MyConnection)
   
        objCommand.Parameters.Add("@Bruger", OleDbType.VarChar)
        objCommand.Parameters.Add("@Pass", OleDbType.VarChar)
        objCommand.Parameters("@Bruger").Value = Bruger
        objCommand.Parameters("@Pass").Value = Pass
        Dim objDataReader As OleDbDataReader = Nothing
        Try
            MyConnection.Open()
            objDataReader = objCommand.ExecuteReader()
       
            While objDataReader.Read() = True
       
                Session("BrugerType") = "Admin"
            End While
            MyConnection.Close()
           
            objDataReader.Close()
        Catch exept As Exception
            Fejl.Text = Convert.ToString(exept)
        End Try
   
    If Convert.ToString(Session("BrugerType")) = "" Then
       
           
            Fejl.Text = "Der er fejl i brugernavn og password!"
    Else
            'Response.Redirect("Menu.aspx")
            Fejl.Text = "Du er nu logget ind!"
    End If
End Sub
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table style="width: 100%; height: 100%;"> 
    <tr>
        <td style="width: 33px; height: 9px;"></td>
        <td style="width: 113px; height: 9px;">&nbsp;</td>
        <td style="height: 9px"></td>
    </tr>
    <tr>
        <td style="width: 33px; height: 92px;">
     
        </td>
        <td style="width: 113px; height: 92px;">
     
        </td>
        <td valign="top" style="height: 92px">
            Brugernavn:  <asp:TextBox ID="BrugernavnT" runat="server" Width="100px"></asp:TextBox><br />
            <br />
            Password:&nbsp;&nbsp;
            <asp:TextBox ID="PasswordT" runat="server" TextMode="Password" Width="100px"></asp:TextBox>
            <asp:Button ID="LoginK" runat="server" Text="Login" OnClick="LoginK_Click" />
     
        </td>
    </tr>
    <tr>
        <td style="width: 33px">
     
        &nbsp;</td>
        <td colspan="2" valign="top">
      <asp:Label ID="Fejl" runat="server" CssClass="fejl"></asp:Label></td>
    </tr>
   
</table>


</asp:Content>

Avatar billede per2edb Praktikant
18. september 2009 - 10:55 #7
Det virker. 1000 tak for hjælpen.
Jeg vil anbefale du udgiver en standard login, da mange andre har bøvl ligesom mig.
Vil du lave det så jeg kan give point

For at det skal blive helt rigtigt så sæt:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Password.mdb"
Avatar billede jimmydk Nybegynder
18. september 2009 - 11:11 #8
Det var så lidt, vi er jo til for at hjælpe hinanden.! :)

Jeg vil overveje at gøre det, det skader da ihvert fald ikke.

Det backslash vidste jeg ikke den skulle have, tror det har noget med dit webhotel eller lokale indstillinger.
Men det er der hvor der kan opstå problemer, da stien ikke altid er den samme. :)
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
Kurser inden for grundlæggende programmering

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