Controle Login avec BDD existante
Bien le bonjour.
Je suis en train de développer une site web en ASP.NET, et je tente de réaliser un login en utilisant une base de données existante.
Je travaille avec Visual Studio Ultimate 2012.
J'ai utilisé un WebForm généré par Visual Studio.
Visual Studio a généré une page de login qui contient un contrôle Login.
J'aimerais que la page de login utilise des utilisateurs que j'ai enregistré dans une base de données propre que j'ai également créée avec Visual Studio (SQL Server), et qui contient déjà des utilisateurs.
Comment puis-je faire cela ?
Voici la page Login.aspx :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <%@ Page Title="Log in" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebPressing.Account.Login" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<hgroup class="title">
<h1><%: Title %></h1>
</hgroup>
<section id="loginForm">
<h2>Use a local account to log in.</h2>
<asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false" >
<LayoutTemplate>
<p class="validation-summary-errors">
<asp:Literal runat="server" ID="FailureText" />
</p>
<fieldset>
<legend>Log in Form</legend>
<ol>
<li>
<asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
<asp:TextBox runat="server" ID="UserName" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" CssClass="field-validation-error" ErrorMessage="The user name field is required." />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
<asp:TextBox runat="server" ID="Password" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password" CssClass="field-validation-error" ErrorMessage="The password field is required." />
</li>
<li>
<asp:CheckBox runat="server" ID="RememberMe" />
<asp:Label runat="server" AssociatedControlID="RememberMe" CssClass="checkbox">Remember me?</asp:Label>
</li>
</ol>
<asp:Button runat="server" CommandName="Login" Text="Log in" />
</fieldset>
</LayoutTemplate>
</asp:Login>
<p>
<asp:HyperLink runat="server" ID="RegisterHyperLink" ViewStateMode="Disabled">Register</asp:HyperLink>
if you don't have an account.
</p>
</section>
</asp:Content> |
Et le code associé dans Login.aspx.cs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLLLibrary;
namespace WebPressing.Account
{
public partial class Login : Page
{
BLL businessLayer = new BLL();
protected void Page_Load(object sender, EventArgs e)
{
RegisterHyperLink.NavigateUrl = "Register";
var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
if (!String.IsNullOrEmpty(returnUrl))
{
RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl;
}
}
}
} |
Je précise que c'est la BLLLibrary qui se charge de tous les accès en BDD actuellement.
En gros, lorsque l'utilisateur clique sur "Log In", il faudrait que la page se serve de la BLL pour aller voir en BDD si l'utilisateur existe et que le mot de passe correspond. Si c'est le cas, l'utilisateur est authentifié, et évidemment, mémorisé pour la session en cours.
Merci d'avance,
Jerrypeeren