Delphi Login ด้วย Domain กันเถอะ

--

เมื่ออยู่องค์กรใหญ่ระบบมากมาย จำเป็นต้องใช้ Domain เพื่อจัดการสิทธิ์การเข้าใช้งานในระบบต่างๆ

ก่อนอื่นเลยก็ต้องมี AD ละเนอะ สำหรับตอนที่ผมเขียน Blog อยู่ผมไม่ได้ config อะไรเพิ่มเลยครับ

Component ที่ใช้

ผมเจอใน github ของคนที่ใช้ User ว่า EdZava โดย โปรเจคที่ชื่อว่า ActiveDirectory4Delphi

โปรเจคตัวนี้ฟรีครับ เอามาใช้ได้เลยและยังใช้ง่ายอีกด้วย โดยใน Project จะมีตัวอย่างสำหรับเรียกใช้งานได้อีกด้วย

วิธีติดตั้ง

  1. เพิ่ม Library ให้ Delphi
    เพิ่ม Folder Core,Interfaces,Winapi ใน library ของ Delphi

2. เปิด โปรเจคขึ้นมา (VCL-ActiveDirectory4Delphi-master\src)

3. คลิกขวาแล้วกด Install

4. ลงสำเร็จ

วิธีใช้

  1. เมื่อเปิดโปรเจคมใหม่
    uses ActiveDirectory.Types

2. ออกแบบหน้าจอให้เป็นลักษณะนี้

3. แก้ไข Code ใน event FormCreate เพื่อดึงข้อมูล user ปัจจุบัน

edtUserName.Text := ActiveDirectoryClient.GetCurrentUserName;
edtDomain.Text := ActiveDirectoryClient.GetCurrentDomainName(edtUserName.Text);
LblLDAP.Text := ActiveDirectoryClient.GetCurrentLDAPDomainName(edtDomain.Text);

4. ใส่ Code ใน event btnAuthenticateClick ของปุ่ม Authenticate

procedure TMainForm.btnAuthenticateClick(Sender: TObject);
var
Resultado: Boolean;
Fullname: String;
UserInfo: TADSIUserInfo;
begin
if edtUserPass.Text <> ‘’ then
begin
try
Resultado := ActiveDirectoryClient.AuthenticateUser(edtDomain.Text, edtUserName.Text, edtUserPass.Text) ;
except
on E: Exception do
begin
showmessage(E.Message);
exit;
end;
end;
Resultado := ActiveDirectoryClient.GetUserInfo(edtDomain.Text, edtUserName.Text, UserInfo);
showmessage(‘Login สำเร็จ ยินดีต้อนรับคุณ ‘+UserInfo.UserName);
end
else
begin
showmessage(‘กรุณากรอกรหัสผ่าน’);
end;
end;

สามารถ โหลดตัวอย่างมาดูได้ที่ https://github.com/piyanatn/DelphiLoginWithActiveDirectory

Component ที่ใช้

https://github.com/EdZava/VCL-ActiveDirectory4Delphi

--

--

Responses (2)