提供商托管的sharepoint应用程序,创建SharePoint日历

时间:2014-05-22 18:23:54

标签: sharepoint sharepoint-2013 sharepoint-apps

我创建了一个应该在SharePoint中创建日历表的提供程序托管应用程序。我希望它稍后成为组日历,但首先我只需要执行第1步:创建日历。

我无法找到任何提供商托管指南,了解如何以编程方式创建SharePoint日历。我找不到ListTemplateStyle日历,所以我尝试了事件模板,我不知道它是否可以工作,因为当我尝试运行以下代码时出现错误:

 Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);

        using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
        {
            Web web = clientContext.Web;
            ListCreationInformation listCreator = new ListCreationInformation();
            listCreator.Title = "CompanyCalendar";
            listCreator.Description = "Workcalendar";
            listCreator.TemplateType = (int)ListTemplateType.Events; //106 = events
            //clientContext.Load(web);
            web.Lists.Add(listCreator);
            clientContext.ExecuteQuery();

        }
  

System.Net.WebException:远程服务器返回错误:(401)   未经授权的

Line 27:                 //clientContext.Load(web);
Line 28:                 web.Lists.Add(listCreator);
Line 29:                 clientContext.ExecuteQuery();
Line 30: 
Line 31:             }

由于某些原因,似乎未经授权在此处创建列表。我将Web权限设置为完全控制,我的证书如下所示:

<appSettings>
<add key="ClientId" value="ebcb24ca-afbb-4822-8887-f91504f3d25f" />
<add key="ClientSigningCertificatePath" value="C:\Certs\HighTrustSampleCert.pfx" />
<add key="ClientSigningCertificatePassword" value="1234" />
<add key="IssuerId" value="11111111-1111-1111-1111-111111111111" />
</appSettings>

任何idéas?

我的第二个问题是:我需要学习如何将日历作为组日历?任何提示?

由于

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我自己解决了。

我最近使用SharePoint开发人员站点来调试(在我的情况下是“https://mysite@company.onmicrosoft.com”)。由于我在虚拟机上工作,我应该使用该本地服务器站点(在我的情况下为"http://SERVER1“)。

当我登录到我的虚拟机时,我使用我的Windows用户名和密码登录(在我的情况下,用户名是“开发人员”)并且能够使用该登录与codesnippet "Request.LogonUserIdentity"我的调试站点必须是虚拟服务器(在我的情况下是"http://SERVER1“)。

在我更改为SERVER1之后,它工作了,ListTemplateType.Events 创建日历的模板,问题就解决了。

问题1:如何创建sharepointcalendar Answear:(int)ListTemplateType.Events;

问题2: System.Net.WebException: The remote server returned an error: (401) Unauthorized.
Answear:检查您的调试网站。确保"Request.LogonUserIdentity"或(您登录到Windows的用户)已向您调试的网站承诺

问题3:如何在Privider托管应用上以编程方式将“组日历选项”设置为"true"
Answear:未解决 :(