Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ACCESS Login ePassword

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: ACCESS Login ePassword

Postdi sarox85 » 25/07/11 13:48

Perdonami... ti sto stressando :D

Usi la funzione getWinUser di cui sopra, o fai come dice Flash (che è poi la stessa cosa).


credo di aver capito..oggi ci provo...solo una cosa.... il modulo che tu hai postato

Codice: Seleziona tutto
Option Compare Database
Option Explicit
Private g_Utente As String
Public Sub setUser(p_val As String)
    g_Utente = p_val
End Sub
Public Function getUser() As String
    getUser = g_Utente
End Function
Public Function getWinUser() As String
    getWinUser = Environ("USERNAME")
End Function
io l'ho creato ma serve chiamarlo in un modo particolare per farlo riconoscere dal DB?

Non hai bisogno di un ID, nè di una tabella utenti: basta che nelle tabelle da filtrare metti Username (cioè un campo alfanumerico) e, nelle query, lo confronti con getWinUser.


il mio dubbio era...questo campo deve essere compilato dall'amministrazione che assegna i corsi...con il Nome del docente supponiamo (pensavo ad una casella combinata)....che assegna un id_docente al corso X....cosi poi io lo confronto con la tabella Utenti dove a sua volta c'è il nome insegnate e il login di windows...e pensavo servisse una tabella con i seguenti campi:

id_insegnate / nome insegnate / user windows

tutto questo per non portarmi il login di windows per tutto il DB...

ma fare getWinUser diventa nome insegnate che diventa id_insegnate...anche per evitare omonimie...

sto sbagliando nel ragionamento? o è fattibile anche se contorto?

Ma allora come pensi di gestire gli accessi alle form che dicevi sopra? Cambiano le persone ma gli utenti Windows sono sempre gli stessi?


Sono sempre io a gestire il server...e se aggiungo un nuovo user al dominio...l'amministrazione inserisce il nuovo docente nella tabella user...quindi dovrebbe funzionare tutto con il nuovo docente..o sbaglio?

le uniche che rimangono costanti sono le form amministrazione, dove precludo l'accesso usando il codice che mi hai dato tu... se l'ho capito bene...con un else per l'administrator...

sono folle? :D

Codice: Seleziona tutto
Private Sub Form_Open(Cancel As Integer)

Dim strUser As String

strUser = getWinUser()

If strUser = "pippo" Or strUser = "pluto" Then
    MsgBox "Non hai i permessi per aprire questa maschera."
    Cancel = True
End If

End Sub
sarox85
Newbie
 
Post: 8
Iscritto il: 22/07/11 21:20

Sponsor
 

Postdi archimede » 25/07/11 14:31

sarox85 ha scritto:serve chiamarlo in un modo particolare per farlo riconoscere dal DB?
No.
sarox85 ha scritto:tutto questo per non portarmi il login di windows per tutto il DB
Puoi anche fare così, basta che modifichi la getWinUser in modo che ti torni l'ID facendo una SELECT dalla tua tabella per User_Windows=ecc. Tra l'altro questa è un'ottima ragione per usare la funzione invece dell'istruzione diretta Environ come consigliava Flash: il giorno che dovesse cambiare la logica di riconoscimento utenti devi mettere mano in UN posto solo, e non nelle decine di forms, queries, reports che dipendono da tale logica.
sarox85 ha scritto:anche per evitare omonimie
Questa non l'ho capita: mica puoi avere due utenti Windows con lo stesso nome, no?
sarox85 ha scritto:se aggiungo un nuovo user al dominio...l'amministrazione inserisce il nuovo docente nella tabella user...quindi dovrebbe funzionare tutto con il nuovo docente..o sbaglio?

le uniche che rimangono costanti sono le form amministrazione, dove precludo l'accesso usando il codice che mi hai dato tu... se l'ho capito bene...con un else per l'administrator
L'else non ti serve: se non passi dall'if significa che sei autorizzato quindi non devi fare nulla. Ma l'inghippo è proprio nell'if: io ho messo dei nomi utente "hardcoded", non immaginando che fossero variabili: ti conviene allora farti una funzioncina (per ogni maschera?) che torna true o false in base alla logica che ti pare e che modifichi ogni volta che aggiungi o togli un utente (vedi sopra il discorso della getWinUser).

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: ACCESS Login ePassword

Postdi sarox85 » 25/07/11 19:16

L'else non ti serve: se non passi dall'if significa che sei autorizzato quindi non devi fare nulla. Ma l'inghippo è proprio nell'if: io ho messo dei nomi utente "hardcoded", non immaginando che fossero variabili: ti conviene allora farti una funzioncina (per ogni maschera?) che torna true o false in base alla logica che ti pare e che modifichi ogni volta che aggiungi o togli un utente (vedi sopra il discorso della getWinUser).


implementata e funziona...ho solo messo diverso da...essendo admin unico ad accedere....
Codice: Seleziona tutto
Private Sub Form_Open(Cancel As Integer)
   
    Dim strUser As String

    strUser = getWinUser()

If strUser <> "Admin" Then
    MsgBox "Non hai i permessi per aprire questa maschera.", vbOKOnly, "Violazione di accesso"
    Cancel = True
End If

End Sub


uno è fatto...con questo tutte le form amministrazione sono segregate; essendo sempre un solo utente ad aprirle.

Questa non l'ho capita: mica puoi avere due utenti Windows con lo stesso nome, no?


si...non ci avevo riflettuto...

Puoi anche fare così, basta che modifichi la getWinUser in modo che ti torni l'ID facendo una SELECT dalla tua tabella per User_Windows=ecc.


sorry, questo è fuori dalle mie conoscenze...uso access da molto, ma solo da pochissimo sto studiando VBA....
però ho compreso la logica di ciò che vuoi dire..vorrei provarci da solo se non ti dispiace...in caso ti disturbo domani se per te non è un problema??

Saluti
sarox85
Newbie
 
Post: 8
Iscritto il: 22/07/11 21:20

Postdi archimede » 25/07/11 19:38

sarox85 ha scritto:vorrei provarci da solo se non ti dispiace...in caso ti disturbo domani se per te non è un problema?
Che ci provi da solo non è certo un problema, anzi... Piccola dritta, dai un'occhiata alla funzione DLookup.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: ACCESS Login ePassword

Postdi sarox85 » 25/07/11 21:52

Rieccomi....

credo di esserci riuscito...ho fatto un pò un miscuglio però funziona... :D

scrivo la soluzione anche per gli altri....e se ritieni ci siano pecche...dimmi tu:


creato una tabella insegnati, ed ho assegnato come id_insegnanti il valore che avranno come utenti di windows...così sono tranquillo non ho troppe cose in mente...inserito il campo insegnate..nella tabella corsi, così in amministrazione cliccano e gli esce la lista aggiornata degli insegnati in una combo box...ed assegnano...tutti contenti...(motivo per cui ho creato al tabella, è più facile aggiornare gli insegnati che si susseguono, e in ogni caso la lista degli insegnati sul DB c'è, perché farà anche da rubrica)

una query con criterio getWinUser() sul campo insegnate generata dalla tabella corsi di cui sopra, ed il DB carica solo i corsi che coincidono con l'utente di win

FINE!
sarox85
Newbie
 
Post: 8
Iscritto il: 22/07/11 21:20

Re: ACCESS Login ePassword

Postdi Flash30005 » 25/07/11 23:59

Da quanto ho capito, quindi, ti fidi solo dell'utente windows?
In un progetto realizzato ho adottato con successo un combox di utenti
e un combox utenti admin o superiori
Avevi la possibilità di selezionare qualsiasi nome
Se veniva scelto un utente del combox utenti spariva il combox utenti superiori e viceversa.
Successivamente dovevi inserire la password esatta corrispondente a quel nome altrimenti il db non andava avanti
E' chiaro che ogni utente una volta avuto l'accesso aveva la possibilità di cambiare la propria password ;)
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ACCESS Login ePassword

Postdi sarox85 » 26/07/11 11:30

qui è ancora in fase sperimentale...


ci sto provando...
sarox85
Newbie
 
Post: 8
Iscritto il: 22/07/11 21:20

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "ACCESS Login ePassword":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti