0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 45
|
|
1 | |
Signer странное поведение на некоторых машинах13.04.2015, 21:46. Показов 7126. Ответов 5
Метки нет (Все метки)
Приветствую.
Есть док подписанный ЭЦП. На большинстве машин проверка дока проходит нормально, на паре машин Signer выдает "". Версии клиентов Notes на кривых и нормальных машинах одинаковые. На кривых машинах делал переустановку Notes, выгружал все процессы, не помогает. Да, есть одно но. Тот кто подписывал док, кроссертифицирован в нашей АК на сервере. Цитата из хелпа по сигнеру: "If the signer is not trusted, returns an empty string." Грешу что клиент не воспринимает подписчика как доверенного, хотя кроссы есть в локальной АК. Куда копнуть?
0
|
13.04.2015, 21:46 | |
Ответы с готовыми решениями:
5
Странное поведение видеокарты после некоторых игр На некоторых машинах некорректно отображаются шрифты приложения Ошибка клиент - веб сервис на некоторых машинах MS Word: на некоторых машинах невозможно подключить некоторые компоненты |
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 45
|
|
13.04.2015, 22:01 | 2 |
Дело не в кроссе. Состряпал код, подписал док учеткой из АК, проверил, также возврат ""
0
|
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 45
|
|
13.04.2015, 23:08 | 3 |
Еще эксперимент не прошел :( Скопировал рабочий клиент, запустил на проблемной машине, ошибка та же.
Значит дело в системе.
0
|
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 45
|
|
14.04.2015, 11:39 | 4 |
Ошибка системно возникает на машинах с WinXP SP3, на Win8 проблем нет.
0
|
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 198
|
|
15.04.2015, 10:48 | 5 |
нечто подобное ловил в 6.5.4 +ВинХР
подпись документа на LS и Notes Java API ведут себя по разному. Пришлось для подписи запускать еще и Java agent.
0
|
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 45
|
|
07.03.2017, 12:57 | 6 |
Задачку так и не решил. Писал в IBM, отправлял логи, ничего.
Может кто-то разбирается глубоко в вопросе? Может быть механизм подписи поменять и поможет? Вообщем, готов заплатить за решение задачки. Подробности в личке. --- Добавлено 8 мар 2017. Первое сообщение размещено 7 мар 2017 --- Вообщем, разобрался. Был у меня такой код. Взялся он откуда не знаю, но может и с форума: Код
Public Class SignatureDocument Private session As NotesSession Private curdb As NotesDatabase Private item As NotesItem Private debugMode As String Private Log As NotesStream Sub New () Set Me.session = New NotesSession Set Me.curdb = Me.session.currentDatabase End Sub Public Sub sign(doc As NotesDocument) Подписать Dim dialog As NotesDocument fields = doc.GetItemValue("dspSignedFields" ) Set dialog = Me.curdb.createDocument Call dialog.replaceItemValue("SaveOptions", "0") ForAll fname In fields If Not fname = "Signer" Then Call Me.copyItemToDialogDoc(doc, dialog, CStr(fname)) End If End ForAll Set item = dialog.replaceItemValue("Signer" , Me.signer) item.IsSigned = True Set item = dialog.replaceItemValue("SignedFields" , doc.GetItemValue("dspSignedFields" )) item.IsSigned = True Set item = dialog.replaceItemValue("$signed" , Now()) item.IsSigned = True Call dialog.Sign() If dialog.HasItem("$Signature") Then Set item = dialog.GetFirstItem("$Signature") Call item.CopyItemToDocument(doc, "$Signature1" ) Set item = doc.replaceItemValue("Signer" , dialog.GetItemValue("Signer" )) Set item = doc.replaceItemValue("SignedFields" , dialog.GetItemValue("SignedFields" )) Set item = dialog.GetFirstItem("$signed" ) Call item.CopyItemToDocument(doc, "$signed" ) Else Print "Нет поля $Signature" End If End Sub Private Sub copyItemToDialogDoc(doc As NotesDocument, dialog As NotesDocument, fname As String) If Not doc.hasItem(fname) Then Exit Sub Set item = doc.GetFirstItem(fname) Call item.CopyItemToDocument(dialog, fname) Set item = dialog.GetFirstItem(fname) item.IsSigned = True End Sub Private Function signer As Variant Dim usernamelist As Variant usernamelist = Me.session.usernameList Dim v As Variant Dim ub% If UBound(usernamelist) > 0 Then ub% = 1 Else ub% = 0 ReDim v(ub%) v(0) = usernamelist(0).canonical If ub% = 1 Then v(1) = usernamelist(1).canonical signer = v End Function Public function verifySign(doc As NotesDocument) As Boolean verifySign=false Dim dialog As NotesDocument fields = doc.GetItemValue("SignedFields" ) Set dialog = Me.curdb.createDocument Call dialog.replaceItemValue("SaveOptions", "0") ForAll fname In fields Call copyItemToDialogDoc(doc, dialog, CStr(fname)) End ForAll Set item = dialog.replaceItemValue("Signer" , doc.getItemValue("Signer" )) item.IsSigned = True Set item = dialog.replaceItemValue("SignedFields" , doc.getItemValue("signedFields" )) item.IsSigned = True Set item = dialog.replaceItemValue("$signed" , doc.getItemValue("$signed" )) item.IsSigned = True Set item = doc.GetFirstItem("$Signature1" ) Call item.CopyItemToDocument(dialog, "$Signature") If dialog.IsSigned Then If dialog.Signer = "" then Exit function Dim nam As NotesName Set nam = Me.session.CreateName(dialog.Signer) verifySign=true Else End If End function End Class Я решил пойти сначала, и сделал простой код подписи документа целиком. Код
Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim doc As NotesDocument Set doc=ws.CurrentDocument.Document Call doc.Sign Call doc.Save(True,False) End Sub Код
Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim doc As NotesDocument Set doc=ws.CurrentDocument.Document Print doc.Signer End Sub Соответственно, если документ пересохраняется, то signer возвращает пустое значение. Однако, есть проблемка. Если собакоагентом присвоить значение поля какое-то в док, то подпись не слетает. Лечится тем, что у поля надо указать свойство на 3-й закладке: sign if mailed or saved in section. Вообщем, для многих эта инфа уже очевидная, но решил написать. Главное, не мудрить, там где это не надо
0
|
07.03.2017, 12:57 | |
07.03.2017, 12:57 | |
Помогаю со студенческими работами здесь
6
При выполнении батника на некоторых машинах с Windows XP не работает перенаправление вывода команд в NUL Странное поведение Странное поведение ПК Странное поведение! Странное поведение if Странное поведение ПК Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |