【问题标题】:Accessing File system from SharePoint - Access denied从 SharePoint 访问文件系统 - 访问被拒绝
【发布时间】:2023-03-05 23:31:02
【问题描述】:

我创建了一个自定义 SharePoint 应用程序,它扩展了 SharePoint 的一些 OOTB 功能。现在我想许可应用程序并提供试用期等。所以我想将许可信息存储在文件系统/注册表中并检查应用程序中许可的有效性。但即使在我提升到应用程序池身份之后(他只是域用户,而不是这里建议的系统管理员 http://technet.microsoft.com/en-us/library/cc678863%28office.12%29.aspx),我访问我的文件时被拒绝访问。

从 SharePoint 应用程序读取/写入/创建文件系统中的文件的常见做法是什么?

【问题讨论】:

    标签: c# file sharepoint-2010 sharepoint-2007 access-denied


    【解决方案1】:

    您是否检查过安全日志以查看拒绝访问的用户。我很确定将是登录到共享点的用户,而不是尝试访问该文件的应用程序池身份。应用程序池标识通常仅在网站使用匿名身份验证时才以这种方式使用。

    【讨论】:

    • 我确定是应用程序池。我什至可以理解为什么。检查我提到的技术网文章,并查看应用程序池身份所属的 WSS_WPG 的文件系统权限。它对任何文件夹都没有完全控制权。
    • 那是一篇很长很无聊的文章,所以我只是略读了一遍 ;-) 我看不到任何与我所说的相矛盾的东西。我不是 sharepoint 专家,但标准的 asp.net Web 应用程序将作为经过身份验证的 Windows 用户访问文件系统,如果启用了 Windows 集成身份验证,它们将使用应用程序池身份,例如启用匿名身份验证。
    • 但应用程序池标识必须具有对文件系统的写入权限。对?并非所有 Windows 用户都具有写访问权限。即使在 ASP.NET 应用程序中,只有当应用程序池标识完全控制整个文件系统(不强烈推荐)时,他才能访问文件。通过告诉访问我的意思是读/写/删除。如果 Windows 用户用作应用程序池标识,SharePoint 会自动向他授予一些权限。而且他对大部分文件系统没有写权限。
    • 您必须至少阅读“其他应用程序池帐户”才能理解我在说什么。 :)
    • “其他应用程序池帐户”部分与我提出的观点没有任何关系。对文件和文件夹的访问由标准 NTFS 文件权限确定,在使用 windows 集成身份验证的普通 web 应用程序上,默认情况下,当通过网站访问文件时,使用网站用户的 windows 用户帐户而不是应用程序池身份。 SharePoint 可能无法以这种方式工作,我不确定 100%。在您概述的情况下,应用程序池标识需要对文件系统的某些区域具有某种程度的写入访问权限这一事实无关紧要。
    【解决方案2】:

    您使用的是 SharePoint 2010 还是 2007?什么样的认证? NTLM、表格或声明?

    如果应用程序在 NTLM 下运行,那么按照 Ben 的建议,应用程序将在 NTLM 帐户下运行,您应该能够访问该资源。

    如果在表单下运行,应用程序将以匿名用户(本地帐户)身份运行,这将无法访问共享资源。

    我建议使用 ProcMon,它将捕获底层访问被拒绝错误以及正在使用什么用户来访问它。

    【讨论】:

      【解决方案3】:

      我想除了将其存储在自定义数据库或自定义文件夹中之外没有其他解决方案,该文件夹配置了应用程序池帐户的完全访问权限。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-26
        • 1970-01-01
        相关资源
        最近更新 更多