ciao,
ti conviene partire da qualche tutorial dei vari tipi di authentication che mette a disposizione asp.net, così capisci meglio come far gestire al framework tutto quanto, senza (o quasi) scrivere codice per gestirti l'utente.
http://msdn.microsoft.com/it-it/library/aa291347(VS.71).aspx
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/default.aspx
http://www.asp.net/learn/videos/video-06.aspx
Io ti consiglio di usare questa tecnica (Forms Authentication):
- Web.config:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
....
<authentication mode="Forms">
<forms name="miosito" protection="All" loginUrl="~/login.aspx">
</forms>
</authentication>
<authorization>
<allow users ="?" />
<allow users ="*" />
</authorization>
</system.web>
<!--
-->
<location path="admin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
.....
così gli dici che la pagina ( login.aspx ) è quella dedicata all'autenticazione, poi gli dici che tutti sono abilitati ( <allow users ="?" />...<allow users ="*" /> ) per tutto il sito tranne per la directory "admin" che non ammette anonimi, ma solo quelli autenticati.
come vedi hai definito qual'è la pagina di login, e si arrangia lui se mai dovesse scadere a redirigere la richiesta su quella pagina per farsi ridare le credenziali
- login.aspx:
in questa pagina trascini dentro un controllo "LoginControl" che fa tutto lui, l'unica cosa è decidere come valutare il fatto che siano corrette le credenziali immesse, quindi nell'evento:
...
<asp:Login ID="login" runat="server"
OnLoggingIn="login_OnLoggedIn">
</asp:Login>
...
protected void OnLoggedIn(object sender, EventArgs e)
{
//--- decidi qui che controlli fare per abilitare o meno l'utente
if (login.UserName == "matteo" && login.Password == "raumer" )
FormsAuthentication.RedirectFromLoginPage(txtUser.Text, false);
else
lblOut.Text = "* dati non corretti.";
}
- /admin/pagina.aspx:
qui non devi gestire niente di quello che dicevamo prima, tu disegni la pagina come vuoi normale, solo che nel web.config hai detto che quelle pagine sono protette, e quindi il motore .net se non ha un utente registrato, redirige alla login per farsi dare le credenziali.
Ovviametne la mia spiegazione è molto veloce, devi guardare meglio i link che ti ho dato per capire bene...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo