348 messaggi dal 10 marzo 2013
Allora ho creato la classe di avvio owin

Imports Microsoft.AspNet.Identity
Imports Microsoft.Owin
Imports Microsoft.Owin.Security.Cookies
Imports Owin

<Assembly: OwinStartup(GetType(WebFormsIdentity.Startup))>
Namespace WebFormsIdentity
    Public Class Startup
        Public Sub Configuration(ByVal app As IAppBuilder)
            app.UseCookieAuthentication(New CookieAuthenticationOptions With {
                .AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                .LoginPath = New PathString("~/UserArea")
            })
        End Sub
    End Class
End Namespace


Poi sto preparando la pagina di login ma ho il seguente problema:


Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.Owin.Security
Imports System
Imports System.Web
Imports System.Web.UI.WebControls

Public Class UserArea
    Inherits System.Web.UI.Page

    Private Sub UserArea_Load(sender As Object, e As EventArgs) Handles Me.Load

        If Not IsPostBack Then

            If User.Identity.IsAuthenticated Then
                StatusText.Text = String.Format("Helo! {0}!!", User.Identity.GetUserName())
                loginStatus.Visible = True
                LogoutButton.Visible = True
            Else
                LoginForm.Visible = True
            End If

        End If
    End Sub

    Protected Sub SignIn(ByVal sender As Object, ByVal e As EventArgs)
        Dim userStore = New UserStore(Of IdentityUser)()
        Dim userManager = New UserManager(Of IdentityUser)(userStore)
        Dim user = userManager.Find(UserName.Text, Password.Text)

        If user IsNot Nothing Then
            Dim authenticationManager = HttpContext.Current.GetOwinContext().Authentication
            Dim userIdentity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie)
            authenticationManager.SignIn(New AuthenticationProperties() With {
                        .IsPersistent = False
                    }, userIdentity)
            Response.Redirect("~/UserArea.aspx")
        Else
            StatusText.Text = "Invalid username or password."
            loginStatus.Visible = True
        End If
    End Sub


ma nella seguente parte ho un errore
HttpContext.Current.GetOwinContext().Authentication


GetOwinContext non è membro di HTTPContext

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
verifica di aver installato questo pacchetto Nuget.
https://www.nuget.org/packages/Microsoft.Owin.Host.SystemWeb

A quel punto dovrebbe andare.

ciao,
Moreno

Enjoy learning and just keep making
348 messaggi dal 10 marzo 2013
ok perfetto, ora funziona.
Adesso devo cercare di capire come rendere sicure le pagine ed autorizzare l accesso alle stesse in base al ruolo.

Grazie
a presto
348 messaggi dal 10 marzo 2013
Ciao
Non riesco a capire come e dove trovare un esempio, in modo da non rompere le scatole a nessuno, su come implementare autorizzazione e autenticazione delle pagine del sito.
Mi servirebbe in Vb.net, tutto quello che trovo è in c# e quando faccio la conversione ho un mucchio di errori.

Grazie 1000
348 messaggi dal 10 marzo 2013
Sono super impantanato con identity.
Tutto cio che trovo in rete mi mostra come modificare e integrare Identity utilizzando il form precompilato,
il mio progetto non parte con identity, non parte con la scelta Individual User Accounts dunque non crea la struttura di identity, dove trovo un esempio per poter gestire sta cosa?
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Mario,
prova a mettere questo nel tuo web.config.
https://stackoverflow.com/questions/21243733/how-to-authorize-roles-with-asp-net-identity-in-web-forms/21243941#21243941

Con quella configurazione, consenti l'accesso alla pagina "RoleBasedAuthorization.aspx" soltanto agli utenti loggati che appartengono al ruolo "Administrators".

Ovviamente nel tuo caso sostituisci il nome della pagina aspx e il nome del ruolo con quelli che stai usando tu.
Fai una prova e vedi se funziona. In particolar modo verifica che gli utenti anonimi (e quelli che NON appartengono al ruolo), vengano buttati fuori quando provano a visitare quella pagina.

ciao,
Moreno

Enjoy learning and just keep making
348 messaggi dal 10 marzo 2013
In questo modo blindo l intera applicazione?
Io ho strutturato in questo modo: ho varie aree suddivise in cartelle chiamate cosi: SuperAdmin, Admin, Operatore.
Per gestire la sicurezza ho creato una classe alla quale fanno riferimento le pagine all'interno delle cartelle, gli utenti in queste aree sono limitati, dunque non si presenta la necessita di una registrazione, assegno io i ruoli le password, in base al loro livello accedono ad un area a loro riservata.
Il SuperAdmin vede tutto cio che fanno gli altri, gli altri vedono solo cio che fanno loro.
Ma la parte sopra citata non utilizza identity.
Per quanto riguarda l'area comune sto cercando di integrare identity, a questo punto metto un altro webconfig all interno della cartella UserArea: e' corretto?
poi dovro gestire il tutto in modo che ognuno veda solo i propri dati.
Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
In questo modo blindo l intera applicazione?

Un passo alla volta. Prima verifica se riesci a impedire l'accesso a una pagina, come ti ho mostrato nel post precedente.
Non avendo il codice del tuo progetto non posso verificare di persona se funziona.

ciao,
Moreno

Enjoy learning and just keep making

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.