从Web应用程序访问SharePoint文档库?

时间:2012-12-05 15:44:34

标签: c# sharepoint sharepoint-2010 sharepointdocumentlibrary

是否可以从Web应用程序访问SharePoint 2010文档库?如果是这样,那么你能指出我正确的方向吗?

我需要编写一个允许文档版本控制,签入/签出,下载/上传和搜索的应用程序。

到目前为止,我已经编写了一个基本的Windows窗体应用程序,它可以执行前面提到的所有功能,但现在我需要从Web应用程序访问它们。

3 个答案:

答案 0 :(得分:3)

在Windows窗体应用程序中,您可以使用托管客户端对象模型来访问SharePoint文档库等。有关详细信息,请参阅此链接:

http://msdn.microsoft.com/en-us/library/ee857094(v=office.14).aspx

答案 1 :(得分:2)

首先,您应该检查要向Web应用程序公开的内容。这个Web应用程序是否面向公众(通过互联网)应用程序?或者仅在内部使用。

当它只在内部使用时,我会确保webapplication可以访问SharePoint的默认Web服务,并可以借助此服务查询文档库。您可以在此处找到此方法的示例:Using SharePoint Web Services to Explore Document Libraries

如果是面向公众的网络服务,您应该检查您需要多少功能。因为这意味着您还必须将SharePoint服务公开给Internet。另一种选择可能是编写自己的服务,实现所需的功能,然后公开该服务。这将降低您的安全风险,也许您可​​以重用Windows Forms应用程序中使用的一些代码并将其移至服务中。

答案 2 :(得分:1)

首先,您需要添加对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,或者您可以冒充特定用户,这不是一个好习惯。

有关更多技术细节,请访问:

SPSite

SPWeb

SPFile