• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

ЭЦП (открытый ключ)

srgsrv

Member
27.12.2019
8
0
Добрый день, коллеги! С Lotus знаком недавно и появилась такая проблемка, есть код LotusScript, который считывает поочередно строчки из файла: имясертификата.cer и затем , соответственно, информацией из этого сертификата заполняются поля в форме в Lotus'е, так вот, в каждом сертификате есть поле, которого нет в форме в самом Лотусе, можно ли сделать так, чтобы при выполнении кода, эта строка пропускалась и не считывалась? Проблема в том, что были старые сертификаты и в них эта строка выглядела примерно так: НАЗВАНИЕСТРОКИСЕРТИФИКАТА = ул. названиеулицы, д 123 , теперь она выглядит так: НАЗВАНИЕСТРОКИСЕРТИФИКАТА = названиеулицы 123 , таким образом, в коде есть строки, которые помогают игнорировать название в одном формате, а теперь новые сертификаты и строка не игнорируется, а что делать если вдруг появится еще какая-нибудь лишняя точка в названии и тогда придется снова менять код. Надеюсь, вы поняли о чем я :D пример кода ниже. Заранее спасибо!

If Instr(txt$, "НАЗВАНИЕСТРОКИСЕРТИФИКАТА=") > 0 Then
txt$ = Strright(txt$, "НАЗВАНИЕСТРОКИСЕРТИФИКАТА=")
If (txt$ ="Название Улицы 123") Then
Else
Call uidoc.FieldSetText("ПОЛЕ", txt$)
End If
End If
 
трэш, зачем работать с uidoc?я - нет
надо игнорировать поле если его содержимое не соответ. шаблону или что?


скрипт не мой, я человек новый, так скажем.

да, есть старые сертификаты, есть новые, значение(вариант записи) строки "STREET" в них различается. задача: вовсе игнорировать эту строку, т.к. в карточке документа в Lotus такой строки нет.
 
скрипт не мой, я человек новый, так скажем.

да, есть старые сертификаты, есть новые, значение(вариант записи) строки "STREET" в них различается. задача: вовсе игнорировать эту строку, т.к. в карточке документа в Lotus такой строки нет.
опять у меня не сложилась картинка...
есть сертификат, в нем есть поля со значениями, что нужно:
- если поле имеет к-л значение отличное от привычного - его игнорить?
- если поле отсут в форме - его игнорить,
какой вариант?
Если второе - то просто смените алгоритм записи документа - путь будет информация, но не будет отображаться, пока в форме не появится поле
в это случае не нужно вовсе трогать uidoc, а только связанный с ним Document
т.е. беда вашего кода в uidoc.FieldSetText
д.б. Set doc=uidoc.Document:Call doc.ReplaceItemValue({Имя поля},{значение}):..вставляем др. поля..:unid$=doc.UniversalID:doc.Save:uidoc.Close True:Set doc=db.GetDocumentByUNID(unid$):Dim wks As New NotesUIWorkSpace:Call wks.EditDocument(True, doc)
если док не нужно сохранять в бэке сразу, можно uidoc.Refresh (вместо кода начиная с Save), но не во всех случаях сработает (зависит от расположения кода), можно через промежуточный инмемори док
 
Последнее редактирование:
опять у меня не сложилась картинка...
есть сертификат, в нем есть поля со значениями, что нужно:
- если поле имеет к-л значение отличное от привычного - его игнорить?
- если поле отсут в форме - его игнорить,
какой вариант?
Если второе - то просто смените алгоритм записи документа - путь будет информация, но не будет отображаться, пока в форме не появится поле
в это случае не нужно вовсе трогать uidoc, а только связанный с ним Document
т.е. беда вашего кода в uidoc.FieldSetText
д.б. Set doc=uidoc.Document:Call doc.ReplaceItemValue({Имя поля},{значение}):..вставляем др. поля..:unid$=doc.UniversalID:doc.Save:uidoc.Close True:Set doc=db.GetDocumentByUNID(unid$):Dim wks As New NotesUIWorkSpace:Call wks.EditDocument(True, doc)
если док не нужно сохранять в бэке сразу, можно uidoc.Refresh (вместо кода начиная с Save), но не во всех случаях сработает (зависит от расположения кода), можно через промежуточный инмемори док




желательно первое, НО, игнорить не при условии, что отличное от привычного, а игнорить ВООБЩЕ, т.к. в карточке документа, поля Адрес (поле STREET в сертификате) нет совсем. на данный момент алгоритм такой:

- если поле STREET содержит "Название Улицы 123" тогда его игнорить (при этом, если формат написания адреса другой: "ул. названиеулицы, д 123 "(новый сертификат), это поле уже игнорироваться не будет!)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD