我创建了一个提供商托管的应用程序,它应该在SharePoint中创建一个日历列表。我希望它是一个组日历,但首先我只需要做第一步:创建一个日历。
我找不到任何关于如何以编程方式创建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。web异常:远程服务器返回一个错误:(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:CertsHighTrustSampleCert.pfx" />
<add key="ClientSigningCertificatePassword" value="1234" />
<add key="IssuerId" value="11111111-1111-1111-1111-111111111111" />
</appSettings>
任何想法?
我的第二个问题是:我要学些什么才能把日历变成群组日历?有提示吗?
谢谢
http://social.msdn.microsoft.com/Forums/sharepoint/en-US/509e099f-7f0d-4c52-9ad9-cf3d8b270d34/how-to-customize-input-form-for-sharepoint-2010-calendar?forum=sharepointcustomizationprevious可能有帮助。以上网址包含类似讨论
我自己解决了。
我显然使用了一个SharePoint开发者网站进行调试(在我的例子中是"https://mysite@company.onmicrosoft.com")。因为我在虚拟机上工作,所以我应该使用本地服务器站点(在我的例子中是"http://SERVER1
")。
当我登录到我的虚拟机,我登录我的windows用户名和密码(在我的情况下,用户名是"开发人员"),并能够使用该登录与代码片段"Request.LogonUserIdentity"
我的调试站点必须是虚拟服务器(在我的情况下,"http://SERVER1
")。
在我更改到SERVER1之后,它工作了,ListTemplateType.Events
是日历的模板,问题得到了解决。
问题1:如何创建sharepointcalendar
答案:(int)ListTemplateType.Events;
问题2: System.Net.WebException: The remote server returned an error: (401) Unauthorized.
回答:检查您的调试站点。确保"Request.LogonUserIdentity"
或(您登录到windows的用户)对您的站点有承诺,您将朝着
问题3:如何在提供商托管的应用程序上以编程方式将"组日历选项"设置为"true"
。
接:没有解决: (