繁体   English   中英

如何在InfoPath表单中验证用户是否存在于SharePoint Portal中?

[英]How can I validate within an InfoPath form whether a user exists within a SharePoint Portal?

我正在InfoPath中创建一个表单,该表单将集成到SharePoint 2007门户中。 在此表单中,将有一个文本字段,用户可以在其中输入人员姓名。

如何验证此人是否存在?

有没有办法用门户网站的所有用户名填充下拉列表? (原因是Active Directory中的用户)

我没有专门做过这个,所以可能有更好的方法,但我已经从SharePoint中提取了大量数据并转换为InfoPath表单(部署到SharePoint表单库,可以通过带有MOSS Enterprise的SharePoint Forms Service访问)并且还使用SharePoint Web服务以另一种方式 - 使用非常快,并且人员Web服务就在那里。

您是否尝试过查看联系人选择器(ActiveX控件)。 这是一篇MSDN文章,描述了如何在InfoPath中将其添加为控件,并且这篇 文章描述了如何使其工作。

我一直在我的大多数infopath项目中使用它,它运行完美 - 也适用于支持浏览器的表单。

在ASP.NET应用程序中执行类似操作时,我使用了Sharepoint搜索并搜索特定用户的“People”范围 您还可以搜索个人资料信息,以便您可以撤回具有特定职位的所有人或特定部门。

我不验证一个人的存在,但我确实使用他们的登录和SharePoint确定一个人的全名。 您应该可以为您的目的修改此代码,如下所示。 要使其正常运行,您需要在InfoPath文档中使用名为GetUsersFromSP的数据连接。 配置如下:


string ADName = System.Environment.UserName;
        IXMLDOMDocument3 UserQuery = (IXMLDOMDocument3)thisXDocument.GetDOM("GetUsersFromSP");
        UserQuery.setProperty("SelectionNamespaces",
            "xmlns:dfs=\"http://schemas.microsoft.com/office/infopath/2003/dataFormSolution\" " +
            "xmlns:tns=\"http://schemas.microsoft.com/sharepoint/soap/directory/\"");

        ((WebServiceAdapterObject)thisXDocument.DataAdapters["GetUsersFromSP"]).Query();

        IXMLDOMNode Users = UserQuery.selectSingleNode("//dfs:myFields/dfs:dataFields/tns:GetUserCollectionFromSiteResponse/tns:GetUserCollectionFromSiteResult/tns:GetUserCollectionFromSite/tns:Users");

        foreach (IXMLDOMNode current in Users.selectNodes("tns:User"))
        {
            string Login = current.attributes.getNamedItem("LoginName").text;

            Login = Login.ToUpper();
            if (Login.EndsWith(ADName.ToUpper()))
            {
                thisXDocument.DOM.selectSingleNode("my:root/my:config/my:User").text = current.attributes.getNamedItem("Name").text;
                break;
            }
        }

使用此控件: http//blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx

或者,如果要构建自己的验证程序,则需要查询SharePoint配置文件数据库。 我建议直接查询AD。 网上有很多关于使用个人资料数据库的文章。

看看此链接,它解释了如何使用SharePoint用户填充下拉列表

http://blueinfopath.blogspot.com/2008/10/how-to-populate-list-with-sharepoint.html

我要验证, - 创建一个文本框 - 添加一个按钮,将其命名为ValidateUser - 创建一个接收连接...... - 将规则添加到ValidateUser - 将文本框添加到辅助数据源中的AccountName字段 - 执行接收连接 - 使用过滤器名称=“PreferredName”获取字段值的值

这项工作为Infopath表单服务测试它并在文本框中输入UserLogin并单击验证按钮

弗雷德里克

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM