+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [ASP.Net]Login con redirect

  1. #1
    perla0279 non è in linea Scolaretto
    Post
    230

    [ASP.Net]Login con redirect

    Ciao
    Ho creato un piccolo pannello utente per permettere di modificare testi ed immagini del sito web.

    Ho fatto la pagina con login e password.
    codice:
    
    <formid="Form1"method="post"runat="server">
    <table>
    <tr>
    <td>Utente :
    </td>
    <td><asp:textboxid="userName"runat="server"Width="154px"></asp:textbox></td>
    </tr>
    <tr>
    <td>Password :
    </td>
    <td><asp:textboxid="password"runat="server"TextMode="password"Width="154px"></asp:textbox></td>
    </tr>
    <tr>
    <td></td>
    <td><asp:buttonid="btnConferma"runat="server"text="Conferma"CssClass="ButtonStyle"Width="155"
    Height="24"></asp:button></td>
    </tr>
    </table>
    
    </form>
    
    codice:
    
    Inherits Page
    PrivateSub btnConferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConferma.Click
    Dim bAuthenticated AsInteger = 0
    Dim user AsString = userName.Text
    Dim pswd AsString = password.Text
    ' bAuthenticated = FormsAuthentication.Authenticate(user, pswd) 
    ' Custom authentication
    bAuthenticated = AuthenticateUser(user, pswd)
    If bAuthenticated > 0 Then
    FormsAuthentication.RedirectFromLoginPage(user, False)
    Else
    MsgBox.Show("Nome utente o password errati. Contatta l'amministratore del sistema se li hai dimenticati.", Page)
    EndIf
    EndSub
    Function AuthenticateUser(ByVal username AsString, ByVal pswd AsString) AsInteger
    Dim cmd As OleDbCommand = New OleDbCommand("CtrlLogin", objdb)
    cmd.CommandType = CommandType.StoredProcedure
    Dim RetValue As OleDbParameter = cmd.Parameters.Add("RetValue", OleDbType.Integer)
    RetValue.Direction = ParameterDirection.ReturnValue
    Dim pUtente As OleDbParameter = cmd.Parameters.Add("@Utente", OleDbType.VarWChar, 30)
    pUtente.Direction = ParameterDirection.Input
    pUtente.Value = username
    Dim pPwd As OleDbParameter = cmd.Parameters.Add("@Password", OleDbType.VarWChar, 30)
    pPwd.Direction = ParameterDirection.Input
    pPwd.Value = pswd
    Dim Ris AsInteger = cmd.ExecuteScalar
    If RetValue.Value = 0 Then
    'MsgBox.Show("Non si possiedono le permissioni", Page)
    ExitFunction
    Else
    Return RetValue.Value
    EndIf
    EndFunction
    

    adesso quando qualcuno clicca il tasto conferma rimanda sulla stessa pagina.

    Vorrei invece che se uno clicca il tasto conferma venisse riindirizzato alla index.

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...basta fare una:
    codice:
    Response.Redirect( "url")

    ...se ho capito la tua richiesta

  3. #3
    perla0279 non è in linea Scolaretto
    Post
    230
    Si la richiesta l'hai capita bene........ma dove lo devo inserire per far si che funzioni corretamente:

    Io ho provato così...........ma non è cambiato nulla!!!

    codice:
    
    PrivateSub btnConferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConferma.Click
    Dim bAuthenticated AsInteger = 0
    Dim user AsString = userName.Text
    Dim pswd AsString = password.Text
    ' bAuthenticated = FormsAuthentication.Authenticate(user, pswd) 
    ' Custom authentication
    bAuthenticated = AuthenticateUser(user, pswd)
    If bAuthenticated > 0 Then
    'FormsAuthentication.RedirectFromLoginPage(user, False)
    Response.Redirect("http://localhost:2099/index.aspx")
    Else
    MsgBox.Show("Nome utente o password errati. Contatta l'amministratore del sistema se li hai dimenticati.", Page)
    EndIf
    EndSub
    

  4. #4
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ..nel tuo caso:
    Response.Redirect("index.aspx")

  5. #5
    perla0279 non è in linea Scolaretto
    Post
    230
    codice:
    
    <formid="Form2"method="post"runat="server">
    <div>
    <table>
    <tr>
    <td>Utente :
    </td>
    <td><asp:textboxid="userName"runat="server"Width="154px"></asp:textbox></td>
    </tr>
    <tr>
    <td>Password :
    </td>
    <td><asp:textboxid="password"runat="server"TextMode="password"Width="154px"></asp:textbox></td>
    </tr>
    <tr>
    <td></td>
    <td><asp:buttonid="btnConferma"runat="server"text="Conferma"CssClass="ButtonStyle"Width="155"
    Height="24"></asp:button></td>
    </tr>
    </table>
    </div> 
    </form>
    
    codice:
    
    Inherits Page
    Dim temp AsString
    Dim cont AsInteger
    ProtectedWithEvents objdb2 As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection
    ProtectedSub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMe.Load
    IfNot IsPostBack Then
    EndIf
     
    EndSub
    PrivateSub btnConferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConferma.Click
    Dim bAuthenticated AsInteger = 0
    Dim user AsString = userName.Text
    Dim pswd AsString = password.Text
    ' bAuthenticated = FormsAuthentication.Authenticate(user, pswd) 
    ' Custom authentication
    bAuthenticated = AuthenticateUser(user, pswd)
    If bAuthenticated > 0 Then
    FormsAuthentication.RedirectFromLoginPage(user, False)
    Response.Redirect("index.aspx")
    Else
    MsgBox.Show("Nome utente o password errati. Contatta l'amministratore del sistema se li hai dimenticati.", Page)
    EndIf
    EndSub
    Function AuthenticateUser(ByVal username AsString, ByVal pswd AsString) AsInteger
    Dim cmd As OleDbCommand = New OleDbCommand("CtrlLogin", objdb)
    cmd.CommandType = CommandType.StoredProcedure
    Dim RetValue As OleDbParameter = cmd.Parameters.Add("RetValue", OleDbType.Integer)
    RetValue.Direction = ParameterDirection.ReturnValue
    Dim pUtente As OleDbParameter = cmd.Parameters.Add("@Utente", OleDbType.VarWChar, 30)
    pUtente.Direction = ParameterDirection.Input
    pUtente.Value = username
    Dim pPwd As OleDbParameter = cmd.Parameters.Add("@Password", OleDbType.VarWChar, 30)
    pPwd.Direction = ParameterDirection.Input
    pPwd.Value = pswd
    Dim Ris AsInteger = cmd.ExecuteScalar
    If RetValue.Value = 0 Then
    'MsgBox.Show("Non si possiedono le permissioni", Page)
    ExitFunction
    Else
    Return RetValue.Value
    EndIf
    EndFunction
    

    adesso funziona...................l'errore stava nel fatto che non avevo compilato bene la pagina aspx

  6. #6
    iltheo non è in linea Scolaretto
    Luogo
    Milano
    Post
    61
    Ciao a tutti.
    Sempre inerente al problema della redirezione delle pagine dopo il login, io ho questo problema.
    Ho creato gli utenti (username & password) ed ho protetto una parte della mia zona del sito utilizzando lo strumento di configurazione ASP.NET di VWD. Ora ho la mia pagina di login così realizzata:
    <asp:LoginID="Login1"Width=500runat="server"BackColor="#EFF3FB"BorderColor="#B5C7DE"BorderPadding="4"BorderStyle="Solid"BorderWidth="1px"Font-Names="Verdana"Font-Size="1.0em"ForeColor="#333333"DestinationPageUrl="./autorizzati/defaultIscritti.aspx">
    <TitleTextStyleBackColor="#507CD1"Font-Bold="True"Font-Size="1em"ForeColor="White"/>
    <InstructionTextStyleFont-Italic="True"ForeColor="Black"/>
    <TextBoxStyleWidth=350pxFont-Size="1em"/>
    <LoginButtonStyleBackColor="White"BorderColor="#507CD1"BorderStyle="Solid"BorderWidth="1px"
    Font-Names="Verdana"Font-Size="1em"ForeColor="#284E98"/>
    </asp:Login>

    all'interno della quale vi è la dicitura DestinationPageUrl con la pagina di destinazione. Peccato che inseriti esername e password mi viene presentata la pagina di accesso di Defualt (default.aspx)

    Dove sto sbagliando?
    Grazie a tutti per i consigli e l'aiuto
    iltheo

  7. #7
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Ciao iltheo,
    a mio parere la property DestinationPageUrl del controllo è impostata correttamente(oltre al punto puoi usare ~)...
    ...ad ogni modo per capire cosa accade realmente inserisci un break point nell'evento page_load della pagina defaultIscritti.aspx(la pagina di destinazione)...questo perchè in questo modo puoi verificare uno se ci arriva, e in caso affermativo eseguire passo passo il debug, perchè molto probabilmente hai qualche redirect nella pagina verso la default.aspx.

  8. #8
    iltheo non è in linea Scolaretto
    Luogo
    Milano
    Post
    61
    Ciao a tutti... ho risolto il mio problema di redirect... ora ovviamente ne ho un altro...
    Ho la necessità, individuato l'utente loggato, di visualizzare una parte della pagina o meno...
    Mi spiego meglio:
    Gli utenti sono pippo re pluto.
    Se si logga pippo devo visualizzare la parte A della pagina.
    Se si logga pluto, devo visualizzare la parte A della pagina più la parte B (che è un link per collegarsi ad un'altra pagina)
    Potete aiutarmi?
    Grazie....
    iltheo

  9. #9
    perla0279 non è in linea Scolaretto
    Post
    230
    ciao
    io ho fatto una cosa simile..........,ma ti avverto quasi inconsciamente perchè sono una primcipiantissima.......capisco ancora così poco!!!!


    ho creato una pagina permision
    codice:
    
    Imports System.data.OleDb
    PublicNotInheritableClass Permission
    PublicSharedFunction GetReadPermission(ByVal name AsString, ByRef dati As DataSet, ByVal modulo AsString) AsBoolean
    Dim ds As DataSet = New DataSet
    ds = dati
    Dim rows() As DataRow = ds.Tables(0).Select("UTENTE='" & name & "' AND PAGINA='" & modulo & "'")
    If rows.Length > 0 Then
    Dim i = rows(0)("PERMISSION").ToString()
    If IsDBNull(i) Then
    ReturnFalse
    Else
    Return ((i And 1) = 1)
    EndIf
    Else
    ReturnFalse
    EndIf
    EndFunction
    PublicSharedSub AggiornaRuolo(ByVal objDb As OleDbConnection, ByVal app As HttpApplicationState)
    Dim cmdText AsString = "SELECT * FROM VIEW_RUOLI"
    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmdText, objDb)
    Dim ds As DataSet = New DataSet
    da.Fill(ds)
    app.Lock()
    app("RuoliData") = ds 'Qui carico i ruoli
    app.UnLock()
    EndSub
    PublicSharedSub AggiornaAziende(ByVal objDB As OleDbConnection, ByVal app As HttpApplicationState)
    Dim cmdText AsString = "SELECT * FROM VIEW_UTENTIXAZIENDA"
    Dim data2 As OleDbDataAdapter = New OleDbDataAdapter(cmdText, objDB)
    Dim ds AsNew DataSet
    data2.Fill(ds)
    app.Lock()
    app("RepartiData") = ds 'Aggiornamento dei reparti
    app.UnLock()
    EndSub
    PublicSharedSub AggiornaPermissioni(ByVal objDB As OleDbConnection, ByVal app As HttpApplicationState)
    If objDB.State <> ConnectionState.Open Then
    objDB.Open()
    EndIf
    Dim cmdText AsString = "SELECT * FROM VIEW_PERMISSIONI"
    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmdText, objDB)
    Dim ds AsNew DataSet
    da.Fill(ds)
    app.Lock()
    app("MyData") = ds 'Aggiornamento delle permissioni
    app.UnLock()
    EndSub
    PublicSharedFunction GetWritePermission(ByVal name AsString, ByRef dati As DataSet, ByVal modulo AsString) AsBoolean
    Dim ds As DataSet = New DataSet
    ds = dati
    Dim rows() As DataRow = ds.Tables(0).Select("UTENTE='" & name & "' AND PAGINA='" & modulo & "'")
    If rows.Length > 0 Then
    Dim i = rows(0)("PERMISSION").ToString()
    If IsDBNull(i) Then
    ReturnFalse
    Else
    Return ((i And 2) = 2)
    EndIf
    Else
    ReturnFalse
    EndIf
    EndFunction
    PublicSharedFunction GetAdminPermission(ByVal pg As Page) AsBoolean
    If pg.User.IsInRole("Administrator") Then
    ReturnTrue
    Else
    ReturnFalse
    EndIf
    EndFunction
    EndClass
    


    collegata a delle tabelle in cui ho assegnato ad ogni utente delle permissioni di vedere o meno alcune voci ha menù.....

    non so se ti può essere utile

  10. #10
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da iltheo Visualizza il messaggio
    Ciao a tutti... ho risolto il mio problema di redirect... ora ovviamente ne ho un altro...
    Ho la necessità, individuato l'utente loggato, di visualizzare una parte della pagina o meno...
    Mi spiego meglio:
    Gli utenti sono pippo re pluto.
    Se si logga pippo devo visualizzare la parte A della pagina.
    Se si logga pluto, devo visualizzare la parte A della pagina più la parte B (che è un link per collegarsi ad un'altra pagina)
    Potete aiutarmi?
    Grazie....
    ...ciao theo,
    io imposterei il tutto basandomi sui ruoli. I due utenti devono appartenere a due ruoli diversi.
    Tramite le classi Membership leggi a che ruolo appartengono e rendi visibile o meno controlli all'interno della pagina.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi