Ich schreibe ein Programm das zwar allen Mitarbeitern auf einem Server zur Verfügung steht, aber nur bestimmte User benutzen können sollen.
Zur Authentifizierung nutze ich hier das tldapsend von synapse.
Ein Beispiel (ohne Gruppen) habe ich gefunden und für mich etwas angepaßt. Das funktioniert soweit gut.
Allerdings wird hier jeder authentisiert der im LDAP administriert ist.
Wie kann ich hier noch eine Gruppe mitgeben in der der User sein muß?
Leider bin ich in LDAP nicht sehr bewandert, daher kenne ich die Möglichkeiten dort nur sehr begrenzt
Brauche ich hier vielleicht garnichts zu tun und das LDAP entscheidet ob ich mich für das Programm authentifizieren darf?
Gruß
Michael
Code: Alles auswählen
procedure TForm8.AnmeldenButtonClick(Sender: TObject);
var
fldap :tldapsend;
begin
fldap := TLDAPSend.Create;
fldap.TargetHost := adDomainComboBox.Text;
fldap.UserName := adUsername_LabeledEdit.Text+'@'+adDomainComboBox.Text;
fldap.Password := adPasswort_LabeledEdit.Text;
{TODO: keine Fehlermeldung wenn falsche Domäne verwendet wird }
Screen.Cursor:=crHourGlass; //crDefauld
fldap.Timeout:=15;
try
try
if fldap.Login then
if fldap.Bind then begin
Form1.SucheLabeledEdit.Enabled:=true;
Form1.SucheLabeledEdit.Color:=clDefault;
Form1.HostSuchenBitBtn.Enabled:=true;
Form1.SucheLabeledEdit.SetFocus;
close;
end
else raise exception.Create('LDAP bind failed.');
except
on e:exception do begin
MessageDlg('Fehler','Authentifizierung ist fehlgeschlagen.',mtError,[mbOK],0);
Form1.SucheLabeledEdit.Enabled:=false;
Form1.SucheLabeledEdit.Color:=clInactiveCaption;
Form1.HostSuchenBitBtn.Enabled:=false;
end;
end;
finally
fldap.logout;
freeandnil(fldap);
end;
Screen.Cursor:=crDefault; //crHourGlass
adUsername_LabeledEdit.Text:='';
adPasswort_LabeledEdit.Text:='';
end;