SpY*_*3HH 5 c# workflow digital-signature sharepoint-2010 infopath2010
正如问题所说,我在提交时使用ac#工作流在SP2010上运行了一个InfoPath表单.如果表单在工作流程中被拒绝,那么我需要重置它.我掌握了一切,除了如何将数字签名重置为null,nill,nada,没有,非现存!有任何想法吗?我现在正在看谷歌,但就目前而言,我甚至不确定是否有数字签名?
哇,我注意到这个问题突然获得了很多流行音乐,奖金几乎消失了.只是把它放在那里,我不打算不给别人,但我本周早些时候需要答案(2012年11月第2周),因此我尽可能地搜索和播放代码,直到我找到了自己的代码.在别人回答我之前回答.但是,为了将来参考,如果有人给出了更好的答案,我很乐意回来并代表他们.谢谢大家的支持,我真的希望我的回答对我来说同样有用.
\n\n\n\xc2\xa1\xc2\xa1\xc2\xa1 我找到了我的FRIGGIN \'答案!!!
\n \xc2\xa1\xc2\xa1\xc2\xa1 它从工作流程中工作!\n
经过一番尝试和磨难,我终于想出了一个解决办法。它涉及几个步骤。一、提升安全性!否则,非管理员用户将导致工作流程出错。看起来应该这样工作,但是......其次,获得正确的模式!我花了一段时间才找到我的,我忘记了具体步骤,但是,它并不难找到。 UPDATED: Can be found as an attribute of xmlDoc.Document, see updated code单步调试(调试)您的工作流程,无需命名空间/架构,并在文档到达时突出显示您的文档。属性之一是作为架构链接的 url。无论如何,你想看看解决方案吗!?是吗?向下看!
SPSecurity.RunWithElevatedPrivileges(delegate()\n{\n SPFile formFile = workflowProperties.Item.File;\n MemoryStream ms = new MemoryStream(formFile.OpenBinary());\n XmlTextReader rdr = new XmlTextReader(ms);\n XmlDocument xmlDoc = new XmlDocument();\n xmlDoc.Load(rdr);\n rdr.Close();\n ms.Close();\n XmlNamespaceManager nsm = new XmlNamespaceManager(xmlDoc.NameTable);\n String schemaUri = xmlDoc.DocumentElement.GetAttributeNode("xmlns:my") != null ? xmlDoc.DocumentElement.GetAttributeNode("xmlns:my").Value : "http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-09-04T20:19:31";\n nsm.AddNamespace("my", schemaUri);\n XmlNode nodeSignatureCollection = xmlDoc.DocumentElement.SelectSingleNode("my:signatures1", nsm);\n if (nodeSignatureCollection != null)\n {\n if (nodeSignatureCollection.HasChildNodes)\n {\n foreach (XmlNode nodeSignature in nodeSignatureCollection.ChildNodes)\n {\n // HERE IT IS!!!\n if (nodeSignature.HasChildNodes && !nodeSignature.IsReadOnly) nodeSignature.RemoveAll();\n }\n }\n }\n byte[] xmlData = System.Text.Encoding.UTF8.GetBytes(xmlDoc.OuterXml);\n formFile.SaveBinary(xmlData);\n formFile.Update();\n});\nRun Code Online (Sandbox Code Playgroud)\n\n请记住,此设置用于检查多个签名。尽管我怀疑如果只有一个签名,任何事情都会改变。
\n\n\n\n任何关于让它变得更甜、更小的建议都可以接受,但是,我必须要求一个解释。老实说,我几乎不明白这里发生了什么!
\n