是否可以从 Web 应用程序访问 SharePoint 2010 文档库?如果是这样,那么你能指出我正确的方向吗?
我需要编写一个允许文档版本控制、签入/签出、下载/上传和搜索的应用程序。
到目前为止,我已经编写了一个基本的 Windows 窗体应用程序,它可以完成前面提到的所有功能,但现在我需要从 Web 应用程序访问它们。
是否可以从 Web 应用程序访问 SharePoint 2010 文档库?如果是这样,那么你能指出我正确的方向吗?
我需要编写一个允许文档版本控制、签入/签出、下载/上传和搜索的应用程序。
到目前为止,我已经编写了一个基本的 Windows 窗体应用程序,它可以完成前面提到的所有功能,但现在我需要从 Web 应用程序访问它们。
从 Windows 窗体应用程序中,您可以使用托管客户端对象模型访问 SharePoint 文档库等。有关详细信息,请参阅此链接:
http://msdn.microsoft.com/en-us/library/ee857094(v=office.14).aspx
首先,您应该检查要向 Web 应用程序公开的内容。这个 Web 应用程序会是面向公众(通过 Internet)的应用程序吗?还是仅在内部使用。
当它只在内部使用时,我会确保 web 应用程序可以访问 SharePoint 的默认 web 服务,并可以在此服务的帮助下查询文档库。您可以在此处找到此方法的示例:使用 SharePoint Web Services 浏览文档库
如果它是面向公众的 Web 服务,您应该检查您需要多少功能。因为这意味着您还必须向 Internet 公开您的 SharePoint 服务。另一种选择可能是编写自己的服务来实现所需的功能,然后公开该服务。这将降低您的安全风险,也许您可以重用您在 Windows 窗体应用程序中使用的一些代码并将其移动到服务中。
首先,您需要添加对 Microsoft.SharePoint.dll 的引用。
以下是如何访问文档库中的项目的示例代码:
using (SPSite site = new SPSite("SiteUrl"))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
//documentCategories is list of doc library names on SPSite, so catName could be something like "Invoices"
foreach (string catName in documentCategories)
{
SPFolder folder = GetFolder(web, catName, processInstanceId, false);
if (folder.Exists)
{
//handle specific document...
foreach (SPFile file in folder.Files)
{
}
}
}
web.Close();
}
site.Close();
}
好吧,这只是让您入门的基础。请注意,您必须在网页中启用 Windows 身份验证和模拟才能使用实际用户凭据访问 SPSite,或者您可以模拟特定用户,这不是一个好习惯。
更多技术细节请访问: