簡體   English   中英

InfoPath表單如何獲取登錄到SharePoint的用戶的聲明?

[英]How can an InfoPath form get the Claims of the user who is logged in to SharePoint?

我們有一個文檔庫,其中包含投標列表(InfoPath表單)。 用戶使用來自各個組織的聲明(Forms Auth,通過Extranet)通過SharePoint登錄。 表單在客戶端的InfoPath中打開。 InfoPath表單包含提案所屬的組織的字段(選擇列表),用戶在填寫表單時會選擇該組織。

我們編寫了一個自定義聲明提供程序,通過組織聲明來增加每個用戶的登錄名。

當用戶在InfoPath表單填充器中從SharePoint打開投標時,我們希望:

  • 使用與用戶聲明相匹配的組織來預先填充組織選擇列表
  • 如果用戶對組織的聲明值與表單上選定的組織不匹配,請限制表單的保存(插入和更新)

我想知道如何在InfoPath中獲取聲明信息。 或者,有關如何使用自定義工作流/事件接收器/ Web服務(或其他方法)在服務器端進行操作的想法。

這是用於從SharePoint 2010獲取聲明的基本教程。將其放置在InfoPath表單后面的代碼中。 http://msdn.microsoft.com/en-us/library/ee535731.aspx

理想情況下,您想從InfoPath表單的FormEvents_Loading方法中調用代碼,如果用戶的組織無效,則創建一個布爾值,如果為false,則將阻止該表單提交。 這將在FormEvents_Submit方法中完成。

我不確定這是否適用於您的特定實現,但是,您可以將輸入控件(下拉列表,列表框等)的數據源設置為從Web服務檢索。

然后,您可以使用eForm上的隱藏字段,其中包含所需的元數據,例如用戶ID。 這些值隨后傳遞到Web服務,並將返回值(列表或其他內容)綁定到eForm中所需的控件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM