Tôi vừa mới tạo ra một bản demo nhỏ về cách sử dụng nó
Bấm here tải mã
Trong sau tôi sẽ hiển thị một số mã:
Trước tiên tôi cần một bản ghi để giữ Thông tin đăng nhập và danh sách các thông tin đó:
Type
TCredential = record
Username, Password, Domain: string;
constructor Create(const aUsername, aPassword, aDomain: string);
function AreEqual(const aUsername, aPassword, aDomain: string): Boolean;
end;
TCredentialList = class(TList<TCredential>)
public
function IsValidCredential(const aUsername, aPassword, aDomain: string): Boolean;
end;
thì chúng tôi cần xác định ngữ cảnh mà chúng tôi đang gọi. Thats chỉ là một ứng dụng độc đáo identifyes chuỗi Mà mỗi Loginfunction
const
Context = 'TForm1';
Trong Form tạo tôi có thể tạo danh sách của tôi và thêm dữ liệu giả để nó
procedure TForm1.FormCreate(Sender: TObject);
begin
CredentialList := TCredentialList.Create;
//Add Dummy data
CredentialList.Add(TCredential.Create('AA', 'AA', 'DomainAA'));
CredentialList.Add(TCredential.Create('BB', 'BB', 'DomainAA'));
CredentialList.Add(TCredential.Create('CC', 'CC', 'DomainAA'));
// Register your Login handler in a context.
// This method is called when you try to login
// by caling TLoginCredentialService.GetLoginCredentials();
TLoginCredentialService.RegisterLoginHandler(Context, LoginCredentialEvent);
end;
tôi đã đặt một nút trên hình thức của tôi từ Mà tôi làm cho tôi gọi để đăng nhập:
procedure TForm1.Button1Click(Sender: TObject);
begin
// The actual call to login
// First param is the context
// Second Parameres is a callback function given to the event handler.
TLoginCredentialService.GetLoginCredentials(Context,
function { LoginFunc } (const Username, Password, Domain: string): Boolean
begin
//The actual user validation
Result := CredentialList.IsValidCredential(Username, Password, Domain);
end);
end;
Cuối cùng tôi chỉ cần phải thực hiện loginhandler tôi:
//This is the "onLogin" event handler.
//This is called durring a login attempt
//The purpose of this event handler are to call tha callBack function with correct information
//and handle the result
procedure TForm1.LoginCredentialEvent(Sender: TObject; Callback: TLoginCredentialService.TLoginEvent; var Success: Boolean);
begin
//Call the callback
Callback(Sender, LabeledEdit1.Text, LabeledEdit2.Text, LabeledEdit3.Text, Success);
//Handle the success.
if Success then
Label1.Caption := 'Yes'
else
Label1.Caption := 'No';
end;
Hy vọng điều này trả lời cho question.Dont quên để tải về các mã hoàn chỉnh here
Bạn có thể xem được cập nhật giúp đỡ trực tuyến tại đây: http://docwiki.embarcadero.com/Libraries/XE6/en/System.Classes. TLoginCredentialService – Johan
@Johan Tài liệu đó cũng hầu như trống. – GolezTrol