CredentialsSet: ICredentialsSet;
Свойство CredentialsSet возвращает коллекцию учетных данных, под которыми может осуществляться подключение.
Коллекция CredentialsSet используется при работе с описанием репозитория. Учетные данные пользователей, хранящиеся в коллекции, могут использоваться при имперсонации пользователей. Все учетные данные, добавленные в коллекцию, шифруются и сохраняются в реестре операционной системы.
Добавьте ссылку на системную сборку Metabase.
Function SetCredentials(Definition: String; Realm: String; User: String; Password: String): Boolean;
Var
MBMan: IMetabaseManager;
MBDef: IMetabaseDefinition;
Link: IMetabaseLink;
ScPack: ISecurityPackage;
DefCrsSet: ICredentialsSet;
CrsRealm: ICredentialsRealm;
Crs: IPasswordCredentials;
Begin
MBMan := MetabaseManagerFactory.Active;
MBDef := MBMan.Definitions.FindById(Definition);
If MBDef = Null Then
Return False;
Else
Link := MBDef As IMetabaseLink;
End If;
If Realm.IsEmpty Then
Crs := Link.Credentials As IPasswordCredentials;
Crs.UserName := User;
Crs.Password := Password;
Else
ScPack := MBMan.Packs.FindById(MbDef.SecurityPackage).Package;
Crs := ScPack.CreateCredentials(AuthenticationMode.Password) As IPasswordCredentials;
//Новые учетные данные
Crs.UserName := User;
Crs.Password := Password;
//Коллекция учетных данных описания
DefCrsSet := Link.CredentialsSet;
//Поиск записи по области действия
//Если запись найдена, то обновляем учетные данные
//Иначе создаем новую запись
CrsRealm := DefCrsSet.Find(Realm);
If CrsRealm = Null Then
CrsRealm := DefCrsSet.Add(Realm);
CrsRealm.Credentials := Crs;
Else
CrsRealm.Credentials := Crs;
End If;
End If;
Mbdef.Save;
Return True;
End Function SetCredentials;
Указанная функция может применяться для обновления учетных данных, сохраненных вместе с описанием репозитория, либо для дополнения коллекции учетных данных новыми записями. При выполнении функции осуществляется поиск описания репозитория, передаваемого в параметре Definition. Если описание отсутствует, то функция вернет значение False. Если область действия не указана, то будут обновлены учетные данные для описания по умолчанию. При указании области действия в коллекции будет создана новая запись, либо обновлена существующая.
См. также: