25 messaggi dal 28 gennaio 2002

Nuovo giorno nuovo problema!
Prima di tutto un grazie a chiunque stia leggendo la mia richiesta, grazie a voi, alla mia più chiara, semplice, completa enciclopedia on-line!!

Veniamo al problema. Ho realizzato un'applicazione in ASP.NET, evoluzione di quella in ASP realzizzata un po' di tempo fa.
Questa applicazione ha bisogno di un'autenticazione "a livelli":
UTENTE SEMPLICE
AUTORE
AMMINISTRATORE.
In asp realizzavo ciò con una variabile di sessione che veniva letta da ciascuna pagina la quale si faceva visualizzare o redirectava alla pagina del login.
Ora, in ASP.NET ho scoperto una cosa molto più semplice, è possibile definire gli utenti direttamente dal WEB.CONFIG:
ES:
</system.web>
</location>
<location path="AUTH2.aspx">
<system.web>
<authorization>
<allow roles="Livello2" />
<deny users="*" />

</authorization>
</system.web>.

Il problema però c'è e grosso!! Come cavolo faccio a far sapere al Framework che un utente ha quel ruolo??
Esiste un comando? Nella documentazione ho trovatosolo una grande confusione!
colgo l'occasione per varvi un'altra domanda!!
Per l'esempio utilizzo la pagina del Login che poi è quella della Micro:

<%@ Import Namespace="System.Web.Security " %>

<html>

<script language="VB" runat=server>

Sub Login_Click(Src As Object, E As EventArgs)
If (UserEmail.Value = "jdoe@contoso.com" Or UserEmail.Value = "mary@contoso.com") And UserPass.Value = "password"
FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, PersistCookie.Checked)
Else
Msg.Text = "Credenziali non valide. Riprovare."
End If
End Sub

</script>

<body>

<form runat=server>

<h3><font face="Verdana">Pagina di accesso</font></h3>

<table>
<tr>
<td>Posta elettronica:</td>
<td><input id="UserEmail" type="text" runat=server/></td>
<td><ASP:RequiredFieldValidator ControlToValidate="UserEmail" Display="Static" ErrorMessage="*" runat=server/></td>
</tr>
<tr>
<td>Password:</td>
<td><input id="UserPass" type=password runat=server/></td>
<td><ASP:RequiredFieldValidator ControlToValidate="UserPass" Display="Static" ErrorMessage="*" runat=server/></td>
</tr>
<tr>
<td>Cookie persistente:</td>
<td><ASP:CheckBox id=PersistCookie runat="server" /> </td>
<td></td>
</tr>
</table>

<asp:button text="Accesso" OnClick="Login_Click" runat=server/>

<p>

<asp:Label id="Msg" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat=server />

</form>
</body>

</html>

Domanda 1:
Come faccio a loggare senza redirectare, non usando insomma FormsAuthentication.RedirectFromLoginPage ??
Domanda 2:
Come faccio a recuperare l'username in una qualsiasi pagina??
Domanda 3:
Qualora mi rispondeste come faccio a recuperare il ruolo in una qualsiasi pagina?


"Non condivido le vostre idee ma farò di tutto perchè possiate esprimerle"
W la democrazia e l'ASP.NET
Domanda 1
puoi impostare il cookie senza spostare l'utente, usa
SetAuthCookie
Domanda 2
Classe
User.Identity
Name ti dice il nome utente
IsAuthenticated per sapere se l'utente autenticato
Domanda 3
I tipi di identity variano a seconda che tu abbia utilizzato un auth win ecc.
La funzione IsInRole(ruolo) dovrebbe andar bene

Ciao<br><b>Nulla si crea, nulla si distrugge, ma tutto si trasforma</b><br>Il mio articolo ma vieniii

Ciao

Il mio blog
Homepage

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.