PDA

Vollständige Version anzeigen : Passwort vom Benutzer ändern?


radi5
27.08.2001, 08:54
Mein Sicherheitssystem läuft, aber bislang muss ich den Benutzern Ihre Passwörter einstellen wie kann ich das den Benutzern selber überlassen?

Danke

Radi

MarkusR
27.08.2001, 09:51
Dazu machst du ein Formular, mit drei Feldern:
- Altes Passwort
- Neues Passwort
- Bestätigung (für neues Passwort)
Ausserdem
- eine Abbrechen-Schaltfläche die das Formular schließt
- eine OK Schaltfläche, in der du prüftst, ob das neue Passwort zweimal gleich eingegeben ist und dann folgende Funktion aufrufst:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="REM">'=============================================================================== </span>
<span class="REM">'Ändert für einen Benutzer das Kennwort in der MDW</span>
<span class="TOKEN">Public Function</span> setUserPWD(<span class="TOKEN">ByVal</span> UName <span class="TOKEN">As</span> String, <span class="TOKEN">ByVal</span> pwd <span class="TOKEN">As</span> String, oldPWD) <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span>
<span class="REM">'=============================================================================== </span>
<span class="TOKEN">On Error GoTo</span> ERR_HANDLE
<span class="TOKEN">Dim</span> ws <span class="TOKEN">As</span> Workspace
<span class="TOKEN">Dim</span> usr <span class="TOKEN">As</span> User

<span class="TOKEN">If</span> Len(pwd) > 14 <span class="TOKEN">Or</span> Len(pwd) = 0 <span class="TOKEN">Then</span>
setUserPWD = <span class="TOKEN">False</span>
MsgBox "Das Kennwort muss zwischen 1 und 14 Zeichen Lang sein!", vbInformation, "Kennwort ändern"
<span class="TOKEN">Exit Function</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Set</span> ws = DBEngine.CreateWorkspace("", PROG_USER, PROG_PWD)
<span class="TOKEN">Set</span> usr = ws.Users(UName)

usr.NewPassword oldPWD, pwd

ws.Users.Refresh
ws.close
setUserPWD = <span class="TOKEN">True</span>
<span class="TOKEN">Exit Function</span>
ERR_HANDLE:
<span clas s="TOKEN">If</span> InStr(1, err.Source, ":") = 0 <span class="TOKEN">Then</span> err.Source = "mdl_Permission" + ":" + "setUserPWD"
err.Raise err.Number
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>

PROG_USR und PROG_PWD sind Benutzername und Kennwort des Programms, für das ich immer auch einen Benutzer mit ADMIN Rechtein anlege.

Als UName kannst du currentUser mitgeben.

Viel Glück

Markus

radi5
27.08.2001, 11:51
OK Markus ich habe das Formular erstellt, und die Abfrage nach der Gleichheit gemacht. nun bin ich aber aus mangelnder VBA Kenntnis nciht in der Lage Deine Funktion richtig aufzurufen.

Könntest Du mir nochmal helfen was man in das Ereignis des OK Buttons nach der Abfrage der Gleichheit aufrufen muss?

Danke

MarkusR
27.08.2001, 13:29
Hi radi5,

jetzt wäre dein Code nützlich gewesen :)

der Aufruf könnte so aussehen:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>
if setUserPWD(currentUser, Me.ControlMitDemNeuenKennwort.Value, Me.ControlMitDemAltenKennwort.Value) <span class="TOKEN">Then</span>
MsgBox "Das Kennwort wurde geändert",vbInfomration","Kennwort"
<span class="TOKEN">Else</span>
MsgBox "Das Kennwort konnte nicht geändert werden.",vbCritical,"Kennwort"
<span class="TOKEN">End</span> <span class="TOKEN">If</span></pre></div>

Ausserdem brauchst du ja noch das Benutzerkonto mit den Adminrechten, (Kann auch dein Account sein...wenn du das Kennwort als nicht Änderst :) ):

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="REM">'Das kommt in irgendein Modul</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> PROG_USER as <span class="TOKEN">String</span> ="radi5"
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> PROG_PWD as <span class="TOKEN">String</span> ="huzipochtli"</pre></div>

Nockenwelle
27.08.2001, 20:25
Hi,

schau dir das Beispiel mal an. http://www.access-paradies.de/Code/Sammlung/Sammlung6/Benutzer.htm

Cu