13. december 2002 - 12:13Der er
21 kommentarer og 2 løsninger
Automatisk generere password når ny post oprettes
Jeg har søgt lidt efter hjælp, men ikke fundet noget jeg kan bruge - er der nogen der har nogen forslag? Minder meget om følgende spg. http://www.eksperten.dk/spm/119177 Men der beskrives desværre ingen løsning :o/
Hver gang en ny post oprettes i min form, skal der autogenereres et 8-cifret password, knyttet til brugerID (helst kun bestående af små bogstaver (abcd...) - (ikke 1234567890, ABCD...) Jeg har et felt i brugertabellen, der hedder 'password', men pt. skal jeg indtaste PW manuelt, når jeg opretter en bruger - ikke smart!
Kan man bruge rand()-funktionen til dette? Eller findes der en anden og lettere måde?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
you could use the users initials and append them to this random number. This is hand so that you can make queries which enable you to select records for a specific user.
Hvad med at bruge en GUID funktion til dette ? Den genererer nogle unikke numre på godt nok en del flere tegn, men så kan du vel bare snuppe de første !
hugopedersen >> Hvordan fungerer en GUID funktion? Og hvad mener du med 'unikke numre'? Er det bogstaver eller tal? Jeg vil meget gerne have (små) bogstaver..
hvorfor laver du ikke en tabel indeholdne 10 bogstaver samt en række med tal (autonr) også laver du et tilfældigt tal som så tage et bogstav istedet for tallet. eks. 1 | a 2 | b 3 | c
juks >> Hvordan kæder jeg så din rnd-funktion sammen med den tabel?
Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.NewRecord Then 'Genererer et password til en ny modtager MyValue = Int((10000000 * Rnd) + 1) ....?....
Prøv følgende - kan tilpasses. I følge standarden kan der ikke dannes 2 GUIDs der er ens på noget tidspunkt. Jeg kan ikke huske om resultatet er store eller små bogstaver, men der er en funktion i Access der automatisk konverterer til små bogstaver, så......................
Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As Byte End Type
Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
Private Const S_OK = 0 ' return value from CoCreateGuid
Function GetGUID() As String
Dim lResult As Long Dim lguid As GUID Dim MyGuidString1 As String Dim MyGuidString2 As String Dim MyGuidString3 As String Dim DataLen As Integer Dim StringLen As Integer Dim i As Integer Dim IfxGUID As String
MyGuidString1 = leadingZeros(2 * DataLen, StringLen) _ & MyGuidString1 'First 4 bytes (8 hex digits) Denne linie giver en Compile Error "Sub or function not defined" og 'leadingZeros' markeres blåt!
Denne kode er noget mere primitiv, men den løser problemet sålænge ikke alle kodeord SKAL være forskellige.
Private Sub Brugernavn_LostFocus() Dim pwgen As String Dim pw(8) As String Dim Cip As Integer For i = 1 To 8 Cip = Left(Int(Rnd(1) * 10000), 2) Select Case Cip Case 0 To 3 pw(i) = "a" Case 4 To 6 pw(i) = "b" Case 7 To 10 pw(i) = "c" Case 11 To 13 pw(i) = "d" Case 14 To 17 pw(i) = "e" Case 18 To 21 pw(i) = "f" Case 22 To 25 pw(i) = "g" Case 26 To 29 pw(i) = "h" Case 30 To 33 pw(i) = "i" Case 34 To 36 pw(i) = "j" Case 37 To 40 pw(i) = "k" Case 41 To 44 pw(i) = "l" Case 45 To 48 pw(i) = "m" Case 49 To 53 pw(i) = "n" Case 54 To 57 pw(i) = "o" Case 58 To 61 pw(i) = "p" Case 62 To 65 pw(i) = "q" Case 66 To 69 pw(i) = "r" Case 70 To 72 pw(i) = "s" Case 73 To 76 pw(i) = "t" Case 77 To 80 pw(i) = "u" Case 81 To 84 pw(i) = "v" Case 85 To 88 pw(i) = "w" Case 89 To 92 pw(i) = "x" Case 93 To 96 pw(i) = "y" Case 97 To 99 pw(i) = "z" End Select Next i
If the reason for having a password is the same as in http://www.eksperten.dk/spm/119177 then why dont you let the user enter a password? Combined with a unique user name would be a secure as what your looking for now wouldnt it?
jkrons >> Din løsning virker tilsyneladende helt efter hensigten. Det eneste der manglede var at få erklæret variablen 'i' i starten.
Men også tak til hugopedersen for den omfattende hjælp..
terry >> Det er ikke brugerne der indtaster deres oplysninger i øjeblikket.. Det gøres af en medarbejder her. Men DBen skal (på sigt) på Nettet, hvor brugerne skal kunne redigere i deres oplysninger.. (derfor skal der være passwords) Denne løsning er helt i orden..
hugopedersen >> Din løsning returnerer faktisk tre strenge af 8 karakterer, adskilt af -, men der er både bogstaver og tal i passwordet.. Da jeg ønsker et rent bogstav-password var jkrons løsning bedre :o/
OK - men et password med bare bogstaver er jo pr. definition et dårligt password :-) I hvertfald er det det IT revisionen skriver hvert år når den IT afdeling jeg arbejder i bliver checket :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.