We have a document library that contains a list of proposals (InfoPath Forms). Users log in through SharePoint using Claims (Forms Auth, via an Extranet) who are from various organizations. The forms open in InfoPath on the client. The InfoPath form contains a field for what organization the proposal belongs to (a select list) that the user then selects when filling the form.
We have written a custom claims provider that augments each user's login with an organization claim.
When the user opens a proposal from SharePoint in the InfoPath form filler, we'd like to:
- Pre-populate the organization select list with the organization matching the user's claim
- Restrict the saving of the form (inserting and updating) if the user's claim value for organization does not match the selected organization on the form
I'm wondering how to get the claims information in InfoPath. Or, for ideas on how to do this server-side using a custom workflow/event receiver/web service (or something else).