我一直在搜索这个主题很长一段时间而没有找到银弹。我们在ASP.NET中有一个Intranet解决方案,我们只想在Office 365中显示来自Sharepoint Online的一些文件。
在Google上搜索它时会有很多点击,但似乎没有什么是"简单的"要走的路。我不是Sharepoint开发人员,但在管理公司的Office 365和Sharepoint Online安装时,我对这些概念有很好的理解。
我找到了当前的答案,告诉我REST服务是要走的路,但在这里我需要一个OATH令牌来访问它们,这就是我的Sharepoint知识有限的地方。从我所看到的,令牌只能通过已安装的Sharepoint应用程序授予,但我知道它可以在没有它的情况下完成。 我购买了一个同步工具,将我们的文件共享与Sharepoint文档列表同步,为此,我不需要任何令牌,我只需输入我的凭据,我就不必在Sharepoint中安装任何内容。 / p>
那么我想从这个问题中得到什么呢?
知道Sharepoint的人很好地引导我朝着正确的方向前进,并且可能有导游并且知道该方法有效。也许REST是正确的方法,但我的同步软件可以在没有它的情况下做到这一点似乎很奇怪。
如果我确实需要在Sharepoint中安装令牌服务器,请在安全方面知道什么以及如何以最佳方式处理它。
非常感谢任何帮助,并提前感谢! :)
答案 0 :(得分:1)
Microsoft有两组API可以访问SharePoint Online:
SharePoint Client Object Model,有了这个,您可以使用用户名和密码进行身份验证;点击链接,您可以找到如何访问文档列表的示例
对于你的情况,你应该使用第一个。
答案 1 :(得分:0)
SharePoint Online还支持基于声明的身份验证模式。这里的一般想法是从用户凭证获取身份验证cookie(除了发出访问令牌的 OAuth 身份验证流程)。获取身份验证cookie后,您可以执行身份验证的 SOAP(例如通过CSOM API)或针对SharePoint Online资源的REST请求,如下所示。
由于您正在开发ASP.NET Web应用程序, 可以使用来自
安装SharePointOnlineCredentials
class的SharePoint Online Client Components SDK,它基本上可以实现 基于声明的认证方案。它可以通过nuget
示例1:通过CSOM API的请求列表项
using (var ctx = GetContext(webUri.ToString(), userName, password))
{
var list = ctx.Web.Lists.GetByTitle("Documents");
var items = list.GetItems(CamlQuery.CreateAllItemsQuery());
ctx.Load(items);
ctx.ExecuteQuery();
foreach (var item in items)
{
Console.WriteLine(item.FieldValues["FileRef"]);
}
}
,其中
private static ClientContext GetContext(string url,string username, string password)
{
var ctx = new ClientContext(url);
var securePassword = new SecureString();
foreach (char c in password) securePassword.AppendChar(c);
ctx.Credentials = new SharePointOnlineCredentials(username, securePassword);
return ctx;
}
示例2:通过REST API的请求列表项
using (var client = new SPHttpClient(webUri, userName, password))
{
var listTitle = "Tasks";
var endpointUrl = string.Format("{0}/_api/web/lists/getbytitle('{1}')/items",webUri,listTitle);
var data = client.ExecuteJson(endpointUrl);
foreach (var item in data["value"])
{
Console.WriteLine(item["Title"]);
}
}
,其中
SPHttpClient.cs
- 实现SharePoint Online的HTTP客户端(SPHttpClient
类)
SPHttpClientHandler.cs
- 实现SharePoint Online的HTTP处理程序