HashPassword(Password: String): String;
HashPassword(System.String): System.String;
Password. Пароль, который должен быть хэширован.
Метод HashPassword осуществляет хэширование пароля.
Для выполнения примера разместите на форме компоненты Button, EditBox (для примера на Fore.NET используйте компонент TextBox), Memo (для примера на Fore.NET используйте компонент ListBox) с наименованиями «Button1», «EditBox1»/«textBox1», «Memo1»/«listBox1» соответственно.
Добавьте системные сборки:
для примера на Fore: Metabase, Collections, Forms;
для примера на Fore.NET: Metabase, Forms.Net, ForeSystem.
Пример является обработчиком события OnClick для компонента «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
User: IMetabaseUser;
HashP: String;
MbPassHistory: IPasswordHistory;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := Mb.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Получим параметры пользователя ADMIN
User := MS.ResolveName("ADMIN") As IMetabaseUser;
HashP := MS.HashPassword(EditBox1.Text);
MbPassHistory := User.PasswordHistory;
// Добавим заданный пароль в историю
If MbPassHistory.Contains(HashP) Then
Memo1.Lines.Add("Пароль '" + EditBox1.Text + "' уже содержится в истории");
Else MbPassHistory.Insert(HashP);
Memo1.Lines.Add("Пароль '" + EditBox1.Text + "' добавлен в историю");
End If;
// Сохраним изменения
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub Button1OnClick;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.ForeSystem;
…
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
User: IMetabaseUser;
HashP: String;
MbPassHistory: IPasswordHistory;
Lic: Object;
Begin
MB := Self.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := Mb.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
// Получим параметры пользователя ADMIN
User := MS.ResolveName("ADMIN") As IMetabaseUser;
HashP := MS.HashPassword(textBox1.Text);
MbPassHistory := User.PasswordHistory;
// Добавим заданный пароль в историю
If MbPassHistory.Contains(HashP) Then
listBox1.Items.Add("Пароль '" + textBox1.Text + "' уже содержится в истории");
Else MbPassHistory.Insert(HashP);
listBox1.Items.Add("Пароль '" + textBox1.Text + "' добавлен в историю");
End If;
// Сохраним изменения
MS.Apply();
// Освободим лицензию
Lic := Null;
End Sub;
После выполнения примера в компоненте Memo/ListBox будет выведен результат проверки заданного пароля в компоненте EditBox/TextBox:
если пароль не содержится в истории паролей, то он будет добавлен в неё;
если пароль содержится в истории паролей, то будет выдано соответствующее сообщение.
См. также: