Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
2 domande
domenica 23 settembre 2007 - 17.55
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
dom 23 set 2007 - 17:55
salve ragazzi,
ho creato un controllo login sotto il quale ho piazzato una label che dovrebbe dirmi se l'username digitato nella textbox 'username'del controllo login esiste o meno...
vorrei sapere se c'è una proprietà, un metodo ecc. del controllo login per fare questo controllo, o se devo per forza fare una select.
inoltre vorrei sapere una cosa:
io ho un sito web, che solo l'amministratore può modificare, e gli altri utenti 'normali' possono solo vedere.
Tale sito è sul mio pc... se un giorno dovessi metterlo in rete, come posso fare per fare in modo che l'amministratore possa effettuare le sue modifiche solo da un pc, mentre non può effettuarne se da pc remoto?
cioè come posso fare per poter modificare il sito, pubblicato in rete, solo dal mio pc mentre dagli altri no?
C'è qualche funzionalità in asp.net che me lo permette?
grazie in anticipo a chi risponderà!
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
franco_rh
Profilo
| Junior Member
55
messaggi | Data Invio:
mar 25 set 2007 - 14:49
C'è il controllo LoginStatus che in abbinamento con il controllo login indica se l'utente è connesso o meno e puoi definire la pagina a cui si viene indirizzati dopo il logout.
Il controllo LoginName visualizza 'Anonimo' nel caso in cui non si sia fatto login ed il nome utente in caso si sia autenticati. Tutto senza scrivere codice.
Seconda domanda:
dipende dalla struttura del sito:
come vi si accede, con nome utente e password? Oppure con autenticazione di windows?
Nel secondo caso il sistema di autenticazione deve essere riscritto, nel primo caso basta fornire username e password all'accesso ed essere registrati al sito come amministratore.
Qui ulteriori dettagli:
http://msdn2.microsoft.com/it-it/library/6hy1xzbw
(VS.80).aspx
(seleziona e incolla in barra di navigazione perchè non viene visualizzato correttamente il link)
Se poi con 'modificare il sito' intendi cambiarne la struttura, riscrivere le pagine ecc. in quel caso è ovvio che il provider ti fornirà dei dati di accesso dove, sotto protocollo ftp, potrai fare le tue modifiche.
MarijCat
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mar 25 set 2007 - 17:05
>C'è il controllo LoginStatus che in abbinamento con il controllo
>login indica se l'utente è connesso o meno e puoi definire la
>pagina a cui si viene indirizzati dopo il logout.
>Il controllo LoginName visualizza 'Anonimo' nel caso in cui non
>si sia fatto login ed il nome utente in caso si sia autenticati.
>Tutto senza scrivere codice.
sì, conosco quel controllo e l'ho pure usato, ma io intendevo dire se un utente si è registrato o meno, non se si è autenticato... forse sono stato poco chiaro... se è così mi scuso..
>Seconda domanda:
>dipende dalla struttura del sito:
>come vi si accede, con nome utente e password? Oppure con autenticazione
>di windows?
>Nel secondo caso il sistema di autenticazione deve essere riscritto,
>nel primo caso basta fornire username e password all'accesso
>ed essere registrati al sito come amministratore.
>Qui ulteriori dettagli:
http://msdn2.microsoft.com/it-it/library/6hy1xzbw
(VS.80).aspx
uso l'autenticazione forms e non uso iis... si può bloccare anche con queste features l'accesso da pc remoti?
cmq leggerò il link che mi hai postato... intanto grazie!
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
franco_rh
Profilo
| Junior Member
55
messaggi | Data Invio:
mar 25 set 2007 - 19:30
Inizio con la seconda domanda:
Devi crearti una cartella nella directory principale del sito web e la chiami ad esempio Administrator o Admin, per dirne una, e vi inserisci un file web.config in cui aggiungi le seguenti righe:
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization >
<allow roles ="Administrator"/>
<deny users ="*"/>
</authorization>
</system.web>
</configuration>
Accertati comunque di aver creato i ruoli e che esista almeno un utente 'Administrator' con Username e Password. (vedi link postato prima)
Ora in questa cartella potrai inserire tutte le pagine web che sono visibili solo all'amministratore e che verranno negate agli utenti anonimi o non Administrator. Non dimenticare di modificare i riferimenti ai percorsi delle pagine se sposti pagine già esistenti: le pagine di primo livello verranno ora a trovarsi in secondo livello: es. \Default.aspx diventa \Admin\Default.aspx
Ricorda che l'accesso è basato su autenticazione 'Forms' e quindi ci si potrà comunque connettere da ogni computer a patto di poter conoscere Username e Password.
Potresti permettere al sito di riconoscere l'IP del computer Administrator e quindi autenticare solo lui in questo modo:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim IPAddress As String = Request.UserHostAddress
If IPAddress= "123.98.9.2" Then
'authentication
End If
End Sub
Ma questo sarebbe possibile solo nel caso che il computer Administrator avesse un IP fisso, gli IP fissi si richiedono specificamente e se non sbaglio (correggetemi) li attribuiscono i gestori di linea.
Prima domanda:
ancora non mi è chiaro: l'utente vorrebbe sapere se è disponibile uno specifico username?
oppure tu vorresti sapere in tempo reale ciò che sta scrivendo l'utente in casella prima di fare login?
Perchè nel primo caso in effetti ti converrebbe fare direttamente una query al database.
Nel secondo caso ti converrebbe usare ajax per sapere in tempo reale cosa stà digitando l'utente prima di fare login.
Spiegati meglio.
MarijCat
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mar 25 set 2007 - 19:35
>Potresti permettere al sito di riconoscere l'IP del computer
>Administrator e quindi autenticare solo lui in questo modo:
>
>Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
>Handles Me.Load
> Dim IPAddress As String = Request.UserHostAddress
> If IPAddress= "123.98.9.2" Then
> 'authentication
> End If
> End Sub
>
>Ma questo sarebbe possibile solo nel caso che il computer Administrator
>avesse un IP fisso, gli IP fissi si richiedono specificamente
>e se non sbaglio (correggetemi) li attribuiscono i gestori di
>linea.
perfetto, era questo ciò che volevo sapere... quello che hai detto in precedenza è già stato fatto...
>Prima domanda:
>ancora non mi è chiaro: l'utente vorrebbe sapere se è disponibile
>uno specifico username?
>oppure tu vorresti sapere in tempo reale ciò che sta scrivendo
>l'utente in casella prima di fare login?
>Perchè nel primo caso in effetti ti converrebbe fare direttamente
>una query al database.
>Nel secondo caso ti converrebbe usare ajax per sapere in tempo
>reale cosa stà digitando l'utente prima di fare login.
allora, un utente entra nel mio sito, e quando prova ad effettuare il login il sistema deve farlo accedere se effettivamente l'user e la pswd digitate esistono... se invece prova ad accedere un utente non registrato (che quindi non ha queste credenziali) il sistema deve negargli l'accesso perchè non ha trovato le credenziali inserite...
e se devo dirti la verità, sono sempre più convinto che la soluzione del db sia la migliore...
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
franco_rh
Profilo
| Junior Member
55
messaggi | Data Invio:
mar 25 set 2007 - 20:00
Adesso è tutto chiaro e la cosa è semplicissima.
Vai nelle prorpietà del controllo Login e nella proprietà 'DestinationPage' inserisci l'url alla pagina dove vuoi che venga indirizzato l'utente loggato; puoi settare anche la proprietà FailureAction (di solito va bene 'Refresh', ricarica cioè la stessa pagina di login).
In pratica settando DestinationPage quando l'utente fa login, se viene riconosciuto viene reindirizzato alla pagina che hai predisposto per gli utenti loggati e specificata in DestinationPage.
Naturalmente questo controllo deve essere abbinato obbligatoriamente con il controllo CreateUserWizard che ha la funzione di creare l'utente quando ci si registra.
MarijCat
franco_rh
Profilo
| Junior Member
55
messaggi | Data Invio:
mar 25 set 2007 - 20:05
Adesso è tutto chiaro e la cosa è semplicissima.
Vai nelle prorpietà del controllo Login e nella proprietà 'DestinationPage' inserisci l'url alla pagina dove vuoi che venga indirizzato l'utente loggato; puoi settare anche la proprietà FailureAction (di solito va bene 'Refresh', ricarica cioè la stessa pagina di login).
In pratica settando DestinationPage quando l'utente fa login, se viene riconosciuto viene reindirizzato alla pagina che hai predisposto per gli utenti loggati e specificata in DestinationPage.
Naturalmente questo controllo deve essere abbinato obbligatoriamente con il controllo CreateUserWizard che ha la funzione di creare l'utente quando ci si registra.
MarijCat
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mar 25 set 2007 - 20:33
>Adesso è tutto chiaro e la cosa è semplicissima.
>Vai nelle prorpietà del controllo Login e nella proprietà 'DestinationPage'
>inserisci l'url alla pagina dove vuoi che venga indirizzato l'utente
>loggato; puoi settare anche la proprietà FailureAction (di solito
>va bene 'Refresh', ricarica cioè la stessa pagina di login).
>In pratica settando DestinationPage quando l'utente fa login,
>se viene riconosciuto viene reindirizzato alla pagina che hai
>predisposto per gli utenti loggati e specificata in DestinationPage.
>Naturalmente questo controllo deve essere abbinato obbligatoriamente
>con il controllo CreateUserWizard che ha la funzione di creare
>l'utente quando ci si registra.
ho capito quello che hai capito tu, e tutto ciò che hai suggerito l'ho fatto... quello che voglio gestire io è il caso di utenti MAI registrati, cioè utenti che tentano di accedere al sito, provano a loggarsi, non sono riconosciuti (ovviamente perchè mai registrati) e rimandati quindi alla pagina del createuserwizard (ho usato anche quello...)
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
franco_rh
Profilo
| Junior Member
55
messaggi | Data Invio:
mar 25 set 2007 - 21:10
Prova questo:
Imports System.Web.Security
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Login1_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles Login1.LoggingIn
Dim Username As String = Login1.UserName
Dim l As Integer = Web.Security.Membership.FindUsersByName(Username).Count
If l > 0 Then
'utente esistente
else
response.redirect(pagina che crea l'utente)
End If
End Sub
End Class
In pratica avendo un controllo login login1 durante l'evento loggingIn (quindi quando parte la richiesta ma non è ancora completa) si passa come parametro alla classe web.security.membership.finduserbyname il nome immesso nel controllo login dall'utente. Se il nome è già presente la variabile integer l assumerà un valore maggiore di zero altrimenti il nome è inesistente e puoi fare un response.redirect alla pagina del loginWizard.
MarijCat
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mar 25 set 2007 - 22:09
>Imports System.Web.Security
>Partial Class _Default
> Inherits System.Web.UI.Page
>
>Protected Sub Login1_LoggingIn(ByVal sender As Object, ByVal
>e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles
>Login1.LoggingIn
>
> Dim Username As String = Login1.UserName
>Dim l As Integer = Web.Security.Membership.FindUsersByName(Username).Count
> If l > 0 Then
> 'utente esistente
> else
> response.redirect(pagina che crea l'utente)
> End If
>
> End Sub
>
>End Class
ok, lo tradurrò in c#, intanto grazie!
senti, se i>0 l'user esiste... quindi lascio vuoto il corpo dell'if, giusto?
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
franco_rh
Profilo
| Junior Member
55
messaggi | Data Invio:
mer 26 set 2007 - 08:25
In pratica dovrebbe andare bene lasciare l'if l>0 vuoto.
MarijCat
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mer 26 set 2007 - 11:29
Lo immaginavo... grazie per l'aiuto!
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !