Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 25 su 25
  1. #21
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,865
    manda pure

    ma mi sembra abbastanza logico che con lo stesso fornitore, se un'installazione funziona ed un'altra no, ci sono settaggi diversi (non so se il gestore ne da' controllo).

    scrivi il gestore in PM, oppure scrivilo qui, non succede niente, al massimo poi edito io
    Ultima modifica di djciko; 14-05-2022 a 17:10

  2. #22
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,394
    Io noto un po di incongruenze in entrambi...
    Il fatto che si comportino diversamente è possibile che sia dovuto alla differenza di protocollo tra i due domini (http-https).

    Proviamo a fare ordine:
    La parte che chiami: "qui leggo" sta dentro la sub che avrai nominato "Application_AuthenticateRequest" (molto importante che si chiami esattamente così) nel global.asax che avrai aggiunto al progetto?
    Se si bene, diversamente aggiungi il global.asax (nel caso non ci sia già, ma mi sa di no), dopo scrivi una sub di nome "Application_AuthenticateRequest" e metti il codice di cui stiamo parlando.
    una cosa del genere (potrebbero esserci errori di sintassi in quanto scrivo a braccio, e in genere scrivo in c#):
    codice:
    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs) 
                 Dim FormsAuthCookie As HttpCookie = Request.Cookies(FormsAuthentication.FormsCookieName)             
                    If Not FormsAuthCookie Is Nothing Then
                        Dim usr As String = FormsAuthCookie.Value
                        Dim Ticket As FormsAuthenticationTicket = FormsAuthentication.Decrypt(FormsAuthCookie.Value)
                        Dim roles As String() = Ticket.UserData.Split(New Char() {"|"})
                        Dim ID As IIdentity = New FormsIdentity(Ticket)
                        Dim principal As IPrincipal = New GenericPrincipal(ID, roles)
                        Context.User = principal   
                     End If  
    End Sub
    Fatto questo, nel caso, significherebbe che questo codice lo stavi usando per riconoscere l'utente, in questo caso li non serve... puoi usare o gli attributi sulla classe o sul metodo o sub, in questo modo chi non autenticato o comunque non ha quella regola (ad esempio: Admin;User;Editor ecc.) non entra nemmeno nella function o sub, mentre se lasci queste libere puoi controllare dentro il codice tramite : "HttpContext.Current.Request.IsAuthenticated" o "HttpContext.Current.User.Identity.IsAuthenticated", questo se dentro un controller, mentre se sei dentro la pagina credo possa non scrivere la parte "HttpContext.Current", quindi da User in poi (se non ricordo male).
    Per ricavare il nome utente e le altre informazioni vai in "User.Identity.Name" (o HttpContext.Current.User.Identity.Name) ecc.

    Se la situazione è già questa allora andiamo avanti, posta eventualmente tutto il pezzo di codice (compreso di nome della function o sub) e dove lo stai posizionando. Ma ho come l'impressione che il nome utente tu lo metta in session... mi sbaglio?

    P.S.
    Nel caso dove scrivi il cookie ricorda di mettere le regole (roles) separate da "|" nel parametro "UserData", sempre ammesso che le voglia utilizzare per differenziare chi e dove può accedere (ne puoi mettere più di una per ogni utente ovviamente) ad una determinata risorsa.
    Ultima modifica di U235; 15-05-2022 a 06:49

  3. #23
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,394
    .

  4. #24
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,514
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Io noto un po di incongruenze in entrambi...
    Il fatto che si comportino diversamente è possibile che sia dovuto alla differenza di protocollo tra i due domini (http-https).

    Proviamo a fare ordine:
    La parte che chiami: "qui leggo" sta dentro la sub che avrai nominato "Application_AuthenticateRequest" (molto importante che si chiami esattamente così) nel global.asax che avrai aggiunto al progetto?
    Se si bene, diversamente aggiungi il global.asax (nel caso non ci sia già, ma mi sa di no), dopo scrivi una sub di nome "Application_AuthenticateRequest" e metti il codice di cui stiamo parlando.
    una cosa del genere (potrebbero esserci errori di sintassi in quanto scrivo a braccio, e in genere scrivo in c#):
    codice:
    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs) 
                 Dim FormsAuthCookie As HttpCookie = Request.Cookies(FormsAuthentication.FormsCookieName)             
                    If Not FormsAuthCookie Is Nothing Then
                        Dim usr As String = FormsAuthCookie.Value
                        Dim Ticket As FormsAuthenticationTicket = FormsAuthentication.Decrypt(FormsAuthCookie.Value)
                        Dim roles As String() = Ticket.UserData.Split(New Char() {"|"})
                        Dim ID As IIdentity = New FormsIdentity(Ticket)
                        Dim principal As IPrincipal = New GenericPrincipal(ID, roles)
                        Context.User = principal   
                     End If  
    End Sub
    Fatto questo, nel caso, significherebbe che questo codice lo stavi usando per riconoscere l'utente, in questo caso li non serve... puoi usare o gli attributi sulla classe o sul metodo o sub, in questo modo chi non autenticato o comunque non ha quella regola (ad esempio: Admin;User;Editor ecc.) non entra nemmeno nella function o sub, mentre se lasci queste libere puoi controllare dentro il codice tramite : "HttpContext.Current.Request.IsAuthenticated" o "HttpContext.Current.User.Identity.IsAuthenticated", questo se dentro un controller, mentre se sei dentro la pagina credo possa non scrivere la parte "HttpContext.Current", quindi da User in poi (se non ricordo male).
    Per ricavare il nome utente e le altre informazioni vai in "User.Identity.Name" (o HttpContext.Current.User.Identity.Name) ecc.

    Se la situazione è già questa allora andiamo avanti, posta eventualmente tutto il pezzo di codice (compreso di nome della function o sub) e dove lo stai posizionando. Ma ho come l'impressione che il nome utente tu lo metta in session... mi sbaglio?

    P.S.
    Nel caso dove scrivi il cookie ricorda di mettere le regole (roles) separate da "|" nel parametro "UserData", sempre ammesso che le voglia utilizzare per differenziare chi e dove può accedere (ne puoi mettere più di una per ogni utente ovviamente) ad una determinata risorsa.
    grazie del suggerimento
    sio lo ho implementato nel global.asax
    ma ancora lo stesso problema
    ora sto notando che un sito web è http e l'altro HTTPS , quest opotrebbe creare differenze?
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #25
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,394
    Da quello che vedo in realtà l'unico cookie che invii sempre (in entrambi i domini) è "mo****a= [userName]" (censurato ovviamente), quindi deduco che l'autenticazione si basi su quel cookie...
    Ora, con Chrome nel dominio "funzionante" (non a caso tra virgolette), il suddetto cookie viene salvato in maniera persistente, e quando riapri il sito invia il cookie (sempre quello sopra) e l'username compare, ma se uso Edge (sempre sul dominio "funzionante") lo stesso non viene inviato come su Chrome (probabilmente non viene salvato in maniera persistente) e quindi l'username non compare e devi autenticarti di nuovo. Da questo ne convengo che:

    A) l'autenticazione la stai basando su quel cookie (quello censurato sopra) e non su ".ASPXAUTH" (da capire cosa fai tu nel codice...) che oltretutto (parlo di ".ASPXAUTH") NON HA SCADENZA, quindi non viene salvato MAI in maniera persistente (in nessun caso, in nessuno dei due domini con coerenza), quindi giustamente alla chiusura del browser viene eliminato.
    B) Il comportamento risulta uguale in entrambi i domini se si usa Edge (nel mio caso) segno che si tratta di impostazioni dei diversi browser,
    C)Il diverso comportamento con Chrome probabilmente è dovuto alle impostazioni di sicurezza (o a meccanismi interni al browser) nel trattare http o https.

    Sarebbe forse il caso di fare un riepilogo come ti stiamo chiedendo da qualche post. Indica anche bene il codice che usi (compreso di nomi delle function/sub) e spiega meglio l'attinenza che ha il cookie censurato con l'autenticazione. Che ruolo gioca il cookie censurato?

    Quello che posso dirti al momento è che non stai facendo la giusta procedura di autenticazione ASP.NET, ma quasi certamente stai facendo un qualche "ibrido".

  6. #26
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,394
    P.S.
    oltretutto Edge credo, ma sono abbastanza sicuro, usi il motore di Chrome internamente, quindi niente di strano che si tratti anche solo di differenze tra versioni

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.