Buongiorno a tutti, nemmeno io ho optato per il membership provider e ho risolto diciamo così, con una tabella db che contiene gli utenti ,
un oggetto session che mantiene lo stato di utente connesso, e un pulsante logout che scollega l'utente.
Chiaramente bisogna scrivere tutto a mano anche se non è una cosa molto lunga.
Pensate che questa soluzione sia buona ?
E se l'utente dimentica di fare il logout ?
Ancora questo non l'ho provato ma penso che la cosa si possa risolvere gestendo l'evento session_end dell'oggetto session.
o no ?
Interessante. Il LogIn è il primo problema degli inesperti che iniziano con ASP
__________________________________________________________________
Anch'io lo sto risolvendo circa cosi, dettaglio A GRANDI LINEE la strada
fatemi delle osservazioni Grazie
___________________________________________________________________
a) esiste un DB di SQL o access con la tabella utenti
che contiene come minimo tre campi
Utente, Pass, IdUtente
_________________________________________________________________
b) la prima pagina della applicazione connessa al DB contiene:
___b1) Un GridViev dove l'utente si seleziona
___b2) Un TextBox dove l'utente scrive la sua pass
___b3) Un DataList con DataSource dedicato e filtrato sui valori del GridView e TextBox citati sopre
___b4) un pulsante di "LogIn" che se premuto conta i record del DataList e se trova 1 record
________registra il Id Utente nella Sessione di ASP
________manda alla seconda pagina
_________________________________________________________________________
C) a questo punto sono nella applicazione con il mio IdUtente
registrato nella sessione che permane con tutti i cambi pagina
pertanto posso filtrare per tutta la applicazione i suoi record
e dargli le sue autorizzazioni
( per le autorizzazioni occorre un altro campo nel DB che le definisca).
_________________________________________________________________
__________________________________________________________________
Non capisco invece il problema del LogOut.
Con la uscita dalla applicazione lo stato della sessione comunque viene perso
pertanto a cosa serve il LogOut?
________________________________________________________________
Allego sotto il codice della pagina di LogIn e il Codice VB allegato alla pagina
La pagina di LogIn
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="pag1.aspx.vb" Inherits="pag1" %>
<!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 runat="server">
<title>___LogIn___</title>
<link href="zStile.css" rel="stylesheet" type="text/css" />
<style type="text/css">
#Div1
{
width: 504px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="Div1"
style="position: absolute; top: 50px; left: 50px">
<!-- Scelgo l'utente __________ 1__________-->
<asp:SqlDataSource ID="DS1" runat="server"
ConnectionString="<%$ ConnectionStrings:LINCS %>"
SelectCommand="SELECT [ZxChi], [ZxId] FROM [Zx]">
</asp:SqlDataSource>
<asp:GridView ID="GV1" runat="server" AutoGenerateColumns="False"
DataSourceID="DS1" DataKeyNames="ZxId" ShowHeader="False" >
<Columns>
<asp:CommandField ButtonType="Button" SelectText=">" ShowSelectButton="True" />
<asp:BoundField DataField="ZxChi" HeaderText="ZxChi" SortExpression="ZxChi" />
<asp:BoundField DataField="ZxId" HeaderText="ZxId" SortExpression="ZxId" InsertVisible="False" ReadOnly="True" Visible="False" />
</Columns>
</asp:GridView>
<!-- Scrivi la Pass ____ e Kliccami ______ 2_____________-->
<asp:SqlDataSource ID="DS2" runat="server"
ConnectionString="<%$ ConnectionStrings:LINCS %>"
SelectCommand="SELECT [ZxChi] FROM [Zx] WHERE ([ZxId] = @ZxId)">
<SelectParameters>
<asp:ControlParameter ControlID="GV1" Name="ZxId" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="GV2" runat="server" AutoGenerateColumns="False"
DataSourceID="DS2" Visible="False" ShowHeader="False">
<Columns>
<asp:BoundField DataField="ZxChi" HeaderText="ZxChi" SortExpression="ZxChi" />
</Columns>
</asp:GridView>
<asp:TextBox ID="TB2" runat="server" Width="230px" Visible="False" TextMode="Password"></asp:TextBox>
<asp:TextBox ID="TB3" runat="server" Text="." ReadOnly="True" Visible="False"
Width="2px"></asp:TextBox>
<asp:Button ID="Ten" runat="server" Text="Vai al Pannello" Visible="False" />
<!-- ___ Verifica ______ 3_________________________-->
<asp:SqlDataSource ID="DS3" runat="server"
ConnectionString="<%$ ConnectionStrings:LINCS %>"
SelectCommand="SELECT [ZxChi], [ZxId] FROM [Zx] WHERE (([ZxId] = @ZxId) AND ([ZxPas] = @ZxPas))">
<SelectParameters>
<asp:ControlParameter ControlID="GV1" Name="ZxId" PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter ControlID="TB2" Name="ZxPas" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:DataList ID="DL3" runat="server" DataKeyField="ZxId" DataSourceID="DS3" Visible="False" >
<ItemTemplate>
ZxChi:
<asp:Label ID="ZxChiLabel" runat="server" Text='<%# Eval("ZxChi") %>' />
<br />
ZxId:
<asp:Label ID="ZxIdLabel" runat="server" Text='<%# Eval("ZxId") %>' />
<br />
</ItemTemplate>
</asp:DataList>
<!-- ___ Messaggio ______ 4 _________________________-->
<asp:TextBox ID="TB4" runat="server" Width="416px" ReadOnly="True"
Visible="False" BackColor="Red" ForeColor="White">___Non Logato Verifica Utente e Pass___</asp:TextBox>
</div>
</form>
</body>
</html>
Gli Script allegati
Partial Class pag1
Inherits System.Web.UI.Page
Protected Sub GV1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GV1.SelectedIndexChanged
'______________________
Me.GV1.Visible = False
Me.GV2.Visible = True
Me.TB2.Visible = True
Me.TB3.Visible = True
Me.Ten.Visible = True
Me.DL3.Visible = False
Me.TB4.Visible = False
'______________________
Me.TB2.Focus()
'GV1 Tutti utenti / GV2 Utrntr selez / TB2 La pass / Ten Pulsante Tenta / DL3 Conteggio / TB4 Messaggio non logato /
End Sub
Protected Sub Ten_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Ten.Click
Me.Page.DataBind()
If Me.DL3.Items.Count = 1 Then
'______________________
Me.GV1.Visible = False
Me.GV2.Visible = False
Me.TB2.Visible = False
Me.TB3.Visible = False
Me.Ten.Visible = False
Me.DL3.Visible = False
Me.TB4.Visible = False
'______________________
Session.Add("IDU", GV1.SelectedValue)
'Me.Page.IsPostBack= = "~/pag2.aspx"
Response.Redirect("~/pag2.aspx", False)
Else
'______________________
Me.GV1.Visible = False
Me.GV2.Visible = True
Me.TB2.Visible = True
Me.TB3.Visible = True
Me.Ten.Visible = True
Me.DL3.Visible = False
Me.TB4.Visible = True
'______________________
Me.TB2.Text = ""
Me.TB2.Focus()
Session.Add("IDU", "")
End If
End Sub
End Class