67 messaggi dal 17 dicembre 2010
Buongiorno a tutti,
vorrei trasformare un mio sito web da asp ad asp.net. Ho acquistato i vs libri e mi sono documemtato online. Ma non riesco a concepure il Membershipprovider...
Per gestire delle aree protette (registrazione utente, login ed accesso) è proprio d'obbligo utilizzare il Membershipprovider?
Lo trovo molto complesso da capire e customizzare.

Riferendomi solo al login, è così "brutto" realizzare una pagina dove viene controllata sul db l'esistenza delle user e password ed in caso affermativo attivare un cookie con valore "ok".
(Se "ok" accedi alle pagine altrimenti no)

Inoltre correi utilizzare un database con meno... molte meno tabelle rispetto a quelle che vengono automaticamente create.

Grazie
94 messaggi dal 22 marzo 2009
Se si usa il asp.net le cose sono 2
1° ti piace sviluppare in C# o VB
2° vuoi la produttività(che si traduce in "se scrivo meno codice è meglio)

altrimenti si sviluppa in php o classic asp

nessuno ti vieta di fare l'autenticazione come l'hai sempre fatta..
cmq il sistema del membership è abbastanza buono...e l'overhead che hai sul db è abbastanza accettabile...poi cmq rilascia un ticket crittografato e firmato utilizzando il <machinekey> quindi ha un buon livello di sicurezza
497 messaggi dal 08 febbraio 2009
Ciao.

Personalmente condivido fino ad un certo punto la tua osservazione: vengono create un sacco di tabelle sul database.
Però non tutte le tabelle riguardano solo l'autenticazione. Infatti negli script di creazione del database spesso sono inserite anche le tabelle che non riguardano autenticazione/ruoli, bensì il site-map, la gestione degli eventi,... Insomma, gli script configurano "tutto" anche se poi non si usa tutto.

Non condivido però la parte in cui dici che non sono facilmente personalizzabili. Forse non potrai gestire il "come" memorizzano i dati nel DB, però dal file web.config puoi gestire un sacco di cose, per cui li trovo "molto personalizzabili".

Per l'autenticazione, se non vuoi usare i provider già forniti col .NET hai anche altre alternative.

Prova a dare un'occhiata a questo.
http://www.alessioluffarelli.it/guide_tutorial/web/autenticazione_asp_net.php

Vedi poi te cosa preferisci fare.
156 messaggi dal 01 dicembre 2010
zonahobby ha scritto:
Buongiorno a tutti,
vorrei trasformare un mio sito web da asp ad asp.net. Ho acquistato i vs libri e mi sono documemtato online. Ma non riesco a concepure il Membershipprovider...

Per gestire delle aree protette (registrazione utente, login ed accesso) è proprio d'obbligo utilizzare il Membershipprovider?
Lo trovo molto complesso da capire e customizzare.

Inoltre correi utilizzare un database con meno... molte meno tabelle rispetto a quelle che vengono automaticamente create.

Grazie

Per conto mio è divertemte scrivere codice
MA SOPRATTUTTO CAPIRE QUELLO CHE SCRIVO

Appena partita con ASP.net e generavo un sito di Default
lo trovavo gia pieno di
LogIn Role Memberschip Profile Script DataBase Global.asax ecc
che non capivo e mi facevano incazz.....

Poi ho scoperto che si puo generare un " Sito Web Voto "
Dove ti ritrovi solamente il File Web.config
con scritta 1 sola riga di codice
Tutto il resto ( per venire alla tua domanda anche il Membershipprovider ) è poi facoltativo

A te il gusto di riscriverlo meglio del Default
311 messaggi dal 08 gennaio 2011
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 ?
Modificato da marioformosa il 09 gennaio 2011 09.42 -
311 messaggi dal 08 gennaio 2011
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 ?
156 messaggi dal 01 dicembre 2010
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="&gt;" 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>
&nbsp;
<asp:TextBox ID="TB2" runat="server" Width="230px" Visible="False" TextMode="Password"></asp:TextBox>
&nbsp;
<asp:TextBox ID="TB3" runat="server" Text="." ReadOnly="True" Visible="False"
Width="2px"></asp:TextBox>
&nbsp;
<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

710 messaggi dal 13 novembre 2008
Contributi
subzero

i vantaggi sono molti di più, solo alcuni esempi, avere un framework vasto e integrato, usare un linguaggio potente come C# che non significa scrivere meno codice, ma organizzare, suddividere, scalare, mantenere, ecc.ecc. ed anche evitare codice 'spaghetti like', cioè misto di script e html come classic asp e php almeno fino alla versione 4, utilizzando OOP

certo si può oggigiorno sviluppare in asp, ma come dire, perchè fermarsi ad una tecnologia soppiantata circa dieci anni fa, oppure continuare a sviluppare come si faceva anni or sono? la scelta credo sia obbligata, e quindi è molto sensato evitare di fare una autenticazione come la si è sempre fatta, e passare da subito ad usare i Provider, per sicurezza, scalabilità,ecc.

JoeRuspante

i Membership e Role Provider sono personalizzabili in toto, basta derivare e crearsi un custom provider dove inoltre puoi memorizzare le informazioni nel db che vuoi e come vuoi, eliminando il problema della generazione di miriadi di tabelle e stored che avviene quando si settano i provider di default; quindi puoi perfettamente gestire anche la memorizzazione in db

marioformosa

gestire come hai detto il login significa non sfruttare quello che il framework ti mette a disposizione

in conclusione consiglio di usare i provider di .net, iniziando da quelli di default, qui sul sito ci sono miriadi di esempi e post, e una volta imparati bene, provare a svilupparsi qualcosa di custom, più adatto alla gestione che si desidera per il proprio progetto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.