Avatar billede loke-liscom Nybegynder
03. marts 2003 - 08:15 Der er 24 kommentarer og
1 løsning

Validering af password

Er der nogen der kan fortælle mig hvordan man kan validere NT brugenavn og password i delphi?
Avatar billede borrisholt Novice
03. marts 2003 - 08:17 #1
Jo send lige en mail til Jens@Borrisholt.com

Så sender jeg dig en function der kan !!

Jens B
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 08:23 #2
Jeg har sendt en mail. ellers er min mail mark@aaks.aarhus.dk
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 08:46 #3
Der er fejl i denne her funktion:

function AddEntry (dwKey : DWORD; pData : pointer) : boolean;
var
  pTemp : PNode;
begin
  GetMem (pTemp, sizeof (TNode));
  if Assigned (pTemp) then
  begin
    pTemp^.dwKey := dwKey;
    pTemp^.pData := pData;
    pTemp^.pNext := Head.pNext; <----------- i denne linie
    Head.pNext := pTemp;
    result := True
  end
  else
    result := False
end;

Med fejlen: "Left side cannot be assigned to"
Avatar billede borrisholt Novice
03. marts 2003 - 08:52 #4
Det ved jeg ikke ... Den fungeret fint her ..

Prøv etv at sætte :

{$J+}


Jens B
Avatar billede borrisholt Novice
03. marts 2003 - 08:55 #5
Det Er det der er galt fordi i

Delphi 6+ er "Writeable typed constants" slået fra som default, altså
{$j-}.

Hvis jeg i Delphi 5 compilerer med {$j-} får jeg samme fejl.

Jens B
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 08:56 #6
Det virker også fint nu, men jeg får en exeption
Avatar billede borrisholt Novice
03. marts 2003 - 08:58 #7
Ikke i mit kode da !

Jens B
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 08:58 #8
Jeg bruger Delphi 7
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 08:59 #9
Jo...

.......
...
  InSecBuff.cbBuffer := cbIn;
  InSecBuff.BufferType := SECBUFFER_TOKEN;
  InSecBuff.pvBuffer := pIn;

  if pAS^._fNewConversation then
    phctxt := Nil
  else
    phctxt := @pAS^._hctxt;

  ss := funcs^.AcceptSecurityContext (@pAS^._hcred, phctxt, @InBuffDesc, 0, SECURITY_NATIVE_DREP, @pAS^._hctxt, @OutBuffDesc, ContextAttributes, Lifetime);
  if ss < 0 then
    raise Exception.CreateFmt ('init context failed: %d', [ss]); <----- HER!!!

  pAS^._fHaveCtxtHandle := TRUE;

  // Complete token -- if applicable

  if (ss = SEC_I_COMPLETE_NEEDED) or (ss = SEC_I_COMPLETE_AND_CONTINUE) then
  begin
..................................
...
Avatar billede borrisholt Novice
03. marts 2003 - 09:01 #10
Du har vel ikke rettighedder til at kalde functionen ?
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 09:03 #11
Hvilke rettigheder skal jeg have?

Jeg er lokal administrator og domain admin
Avatar billede borrisholt Novice
03. marts 2003 - 09:04 #12
Jeg ved det ikke lige. Den virker fint i Delphi 5.

Jens B
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 09:05 #13
Jeg prøver lige i delphi 5.....
Avatar billede borrisholt Novice
03. marts 2003 - 09:06 #14
Så må du igang med debuggeren.

Jeg vil gerne have svarer når du finder det !

Jens B
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 09:08 #15
Okay Jens, jeg har lige testet i Delphi 5 og den laver den samme fejl...
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 09:41 #16
Hej Jens.
Jeg har ikke lige forudsætningerne for at debugge i din kode. Jeg har kigget på det men jeg bliver bare mere forvirret end klogere.. :-)
Jeg mangler lidt dokumentation eller lign. Kan det virkelig passe at der ikke bare findes et API-kald til at validere en bruger?
Avatar billede borrisholt Novice
03. marts 2003 - 10:37 #17
Jeg har lige lavet et test program :

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Visible := SSPLogonUser('Borrisholt', 'Administrator' , 'Hest');
end;

Milijø : Windows 2000 SP3
Compiler :  Delphi 5 sp2

Og det virker fint.

Skulle nogen være i tvivl så er det IKKE admin passworded til min maskine !!

Jens B
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 10:44 #18
Kan det være fordi det er et NT4 domæne?
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 10:50 #19
Det er kun når jeg kører programmet i delphi at jeg får exeptionen. btw. hvis jeg skriver det rigtige password så laver den ingen exeption?????.....
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 10:52 #20
Kan man på en måde bede compileren om at slappe lidt af?
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 10:59 #21
Det er også kun en "Debugger Exception Notification" kan man ikke få debuggeren til at holde kæft ved denne meddelse?
Avatar billede borrisholt Novice
03. marts 2003 - 11:01 #22
Hvilken Delphi ? 5?
Avatar billede loke-liscom Nybegynder
03. marts 2003 - 11:22 #23
Nej Delphi 7, men når jeg prøver i delphi 5 så opfører den sig på samme måde.
Avatar billede borrisholt Novice
03. marts 2003 - 11:30 #24
tools->Debugger Options->Language Exceptions

Der inde under skal ud fjerne krydset i "Stop on Delphi Exceptions"

Det virker vist også i D7

Jens B
Avatar billede borrisholt Novice
03. marts 2003 - 11:34 #25
Det hedder ca det samme i d7

Også virker functionen også !!

Og by the way den er oprindeligt skrevet den gang jeg kørte Windows NT 4.

Jens B
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester