Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在线将Sharepoint 2013表单数据提交到365列表?_Sharepoint_Sharepoint 2013_Sharepoint Designer - Fatal编程技术网

是否可以在线将Sharepoint 2013表单数据提交到365列表?

是否可以在线将Sharepoint 2013表单数据提交到365列表?,sharepoint,sharepoint-2013,sharepoint-designer,Sharepoint,Sharepoint 2013,Sharepoint Designer,使用SharePoint 2013中的数据连接或任何其他方法,是否可以在每次表单完成时将表单数据提交到外部登录位置,如SharePoint 365 online中的列表?我是SharePoint的新手,需要很快学会诀窍!谢谢你能提供的帮助 祝你有一个美好的2020 您可以为SP 2013开发自定义Web部件或外接程序,并可以使用此项目的c#代码向SP Online添加项目 主要问题是您在SP OnPrem和SP online(OF365租户)中使用的身份验证模型。如果您有相同类型的授权提供程序(

使用SharePoint 2013中的数据连接或任何其他方法,是否可以在每次表单完成时将表单数据提交到外部登录位置,如SharePoint 365 online中的列表?我是SharePoint的新手,需要很快学会诀窍!谢谢你能提供的帮助


祝你有一个美好的2020

您可以为SP 2013开发自定义Web部件或外接程序,并可以使用此项目的c#代码向SP Online添加项目

主要问题是您在SP OnPrem和SP online(OF365租户)中使用的身份验证模型。如果您有相同类型的授权提供程序(例如,在您使用adfs的两个地方),那么(作为同一个用户帐户)使用一些加载项或Web部件从OnPrem向Online提交一些数据应该没有多大问题,因为用户将在这两个地方进行身份验证。否则,您可以使用CSOM从OnPrem向Online提交一些数据,但您需要作为某个用户登录(以代码..如硬编码)。从安全角度来看,这不是最好的选择

是一个如何使用CSOM登录SP Online的示例(您可以在Web部件或加载项中执行非常类似的操作)


。。。所以这只是一些想法,但一般来说,首先要做这种逻辑,你需要弄清楚如何在OnPrem和Online之间进行身份验证。如果您使用“相同方式”进行身份验证,则只需创建SPOnline的上下文,然后使用用户权限添加/删除或更新项目。否则,您需要以某些用户身份向SPOnline进行身份验证以提交数据。

如果您使用OOTB列表表单,我们可以创建事件接收者,并使用CSOM C#代码将新项目添加到SharePoint Online列表中。以下代码供您参考

using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using System.Security;
using Microsoft.SharePoint.Client;

namespace SharePointProjectER.CustomListER
{
    /// <summary>
    /// List Item Events
    /// </summary>
    public class CustomListER : SPItemEventReceiver
    {

        /// <summary>
        /// An item was added.
        /// </summary>
        public override void ItemAdded(SPItemEventProperties properties)
        {
            base.ItemAdded(properties);
            if (properties.List.Title == "CL0106")
            {
                //add item to SharePoint Online list
                string siteUrl = "https://tenant.sharepoint.com/sites/team";
                string userName = "admin@tenant.onmicrosoft.com";
                string password = "xxx";

                var securePassword = new SecureString();
                foreach (char c in password.ToCharArray()) securePassword.AppendChar(c);
                var credential = new SharePointOnlineCredentials(userName, securePassword);
                ClientContext clientContext = new ClientContext(siteUrl);
                clientContext.Credentials = credential;
                List oList = clientContext.Web.Lists.GetByTitle("CL0106");

                ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
                ListItem oListItem = oList.AddItem(itemCreateInfo);
                oListItem["Title"] = properties.ListItem["Title"];
                oListItem.Update();
                clientContext.ExecuteQuery();
            }
        }

    }
}
使用系统;
使用System.Security.Permissions;
使用Microsoft.SharePoint;
使用Microsoft.SharePoint.Utilities;
使用系统安全;
使用Microsoft.SharePoint.Client;
命名空间SharePointProjectER.CustomListER
{
/// 
///列表项事件
/// 
公共类CustomListER:SPItemEventReceiver
{
/// 
///添加了一个项目。
/// 
添加了公共覆盖无效项(SPItemEventProperties属性)
{
基本。添加的项目(属性);
如果(properties.List.Title==“CL0106”)
{
//将项目添加到SharePoint Online列表
字符串siteUrl=”https://tenant.sharepoint.com/sites/team";
字符串用户名=”admin@tenant.onmicrosoft.com";
字符串密码=“xxx”;
var securePassword=new SecureString();
foreach(password.ToCharArray()中的字符c)securePassword.AppendChar(c);
var-credential=新的SharePointOnlineCredentials(用户名、安全密码);
ClientContext=新的ClientContext(siteUrl);
clientContext.Credentials=凭证;
List-oList=clientContext.Web.Lists.GetByTitle(“CL0106”);
ListItemCreationInformation itemCreateInfo=新建ListItemCreationInformation();
ListItem oListItem=oList.AddItem(itemCreateInfo);
oListItem[“Title”]=properties.ListItem[“Title”];
Update();
clientContext.ExecuteQuery();
}
}
}
}
或者,我们可以使用自定义表单或外接程序创建自定义web部件作为Adam的回复,并使用CSOM C#代码来实现它

参考: