45 messaggi dal 16 aprile 2008
Salve, ho seguito l'esempio al link:

http://www.aspitalia.com/articoli/asp.net/formauthroles-p-1.aspx


web.config:

<roleManager enabled="true" />
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH" timeout="60">
</forms>
</authentication>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
Pagina di log :

Dim nome As String = (Login1.UserName & ":") + app_dr("L01_ROLE")
FormsAuthentication.RedirectFromLoginPage _
(nome, False)
------------------------------------------------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Request("ReturnUrl") IsNot Nothing AndAlso User.Identity.Name <> "" Then
Response.Redirect("Error.aspx")
End If
End Sub


Pagina Default.aspx


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If User.IsInRole("Admin") = True Then
Response.Write("Role: Admin")
End If
log1.Text = User.Identity.Name

End Sub

Global.asax:

Public Sub Application_AuthenticateRequest(ByVal s As [Object], ByVal e As EventArgs)
If Request.IsAuthenticated Then
Dim role As String, nome As String = User.Identity.Name
role = nome.Substring(nome.IndexOf(":") + 1)
Dim arr As String() = New String() {role}
Dim identita As New GenericIdentity(nome)
Context.User = New GenericPrincipal(identita, arr)
End If
End Sub



In fase di login la procedura non riesce ha caricare la pagina default.asp entra in un ciclo che esegue continuamente : Application_AuthenticateRequest e il page load della pagina di loggin.

Come mai non riesce ad andare avanti?

Saluti Diana
DianaWeb wrote:
In fase di login la procedura non riesce ha caricare la pagina default.asp entra in un ciclo che esegue continuamente :
Application_AuthenticateRequest e il page load della pagina di loggin.
Come mai non riesce ad andare avanti?

forse perchè non hai escluso la pagina default.aspx da quelle protette? metti fuori dal system.web principale nel web.config questo snippet:
<location path="default.aspx">
<system.web>
<authorization>
<allow users="*" />
<allow users="?" />
</authorization>
</system.web>
</location>
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
45 messaggi dal 16 aprile 2008
In questo modo non mi entra nella pagina di login, mi chiedevo, visto che sono passati diversi anni da quell'articolo, esiste un altro metodo per gestire i ruoli con autenticazione form?
Saludi Diana
sì che esiste, ma il punto è che anche la pagina di login va "sprotetta" in quel modo, per accedere alle risorse non protette. il tuo non è un problema di autenticazione o ruoli, ma di autorizzazione.
ad ogni modo, puoi utilizzare Membership e Roles API per non dover implementare tutto il codice di caricamento di utenti e ruoli a mano:
http://tags.aspitalia.com/Membership_API/
http://tags.aspitalia.com/Roles_API/

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.