【问题标题】:Open secure Sharepoint file programmatically using c#使用 c# 以编程方式打开安全的 Sharepoint 文件
【发布时间】:2013-02-23 01:17:13
【问题描述】:

我需要帮助以编程方式打开在线 Sharepoint 文件。这些文件需要在 Sharepoint 上进行保护(这样用户就不会进入它们),但我还需要使用我的 webpart 以某种方式访问​​它(这将检查安全性)。通常,您可以只使用链接到 Sharepoint 文件的超链接,但我们不希望人们共享这些超链接,因此这是行不通的。

我希望用户单击一个链接,并让他们看到该文件的“打开、保存、关闭”对话框菜单。

我试过了

            String fileName = @"file.txt";
            String filePath = @"~online filePath/"; 

            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.ClearHeaders();
            response.ClearContent();
            response.Clear();
            response.ContentType = "text/plain"; 
            //or whatever file type, I can code that later
            response.AddHeader("Content-Disposition", "attachment; Filename=" + fileName + ";");
            response.TransmitFile(filePath + fileName);
            //response.Flush();
            response.End();

不幸的是,虽然这适用于本地文件 (C://...),但当我在我的网络 fike 上尝试此操作时,我只收到一个包含当前页面源代码的文本文档。不知道为什么。

至于处理权限,我计划使用提升的权限让程序获得对文件的访问权限。

如果有任何帮助,我将不胜感激,谢谢。

【问题讨论】:

    标签: sharepoint permissions dialog httpresponse user-permissions


    【解决方案1】:

    这里是提供文件以供 SharePoint 下载的示例代码

    using (SPWeb web = SPContext.Current.Web)
    {
        //Get fileName and filePath here
        response.AddHeader("Content-disposition", "attachment; filename=" + fileName);
        response.ContentType = "application/octet-stream";
        SPFile file = web.GetFile(filePath);
        byte[] fileBytes = file.OpenBinary();
        response.OutputStream.Write(fileBytes, 0, fileBytes.Length);
        response.End();
    }
    

    这是否有帮助,或者您在定位文件名和文件路径时遇到问题?

    【讨论】:

    • 谢谢!我在寻找正确的文件传输方式时遇到了很多麻烦。这是获取文件的方法。 (我使用 using 子句来模拟管理员以获得我想要的访问权限)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2011-07-08
    相关资源
    最近更新 更多