当我使用控制台应用程序项目运行此代码时,它运行良好,但是当我在webpart中运行它时会抛出异常“拒绝访问路径”。我想从我的sharepoint站点访问匿名用户的目录信息。
我为“Everyone”,“ANONYMOUS LOGON”,“IIS_IUSRS”提供完全访问权限(读/写)“wwwroot”文件夹
string VideosPath = @"\\10.2.10.2\inetpub\wwwroot\Videos";
string[] fileDirectories=
System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories);
非常感谢,我使用委托来解决问题
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
using (SPWeb currentWeb = site.OpenWeb(SPContext.Current.Web.ID))
{
string[] fileDirectories=
System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories);
}
}
}
);
答案 0 :(得分:1)
您的@"\\10.2.10.2\...
路径将引用当前驱动器的根目录,这不应该是。
你需要:
string VideosPath = Server.MapPath("~/10.2.10.2/...");
...
其中~/
是您应用的根,只有/
才是“网站”的根
答案 1 :(得分:1)
Web服务器的匿名帐户不是远程计算机上的匿名帐户。
要使其工作,请在具有相同名称和密码的两台计算机上创建新帐户,然后在此帐户下运行网站的应用程序池。也许“仅”使用此帐户运行IIS就足够了,所以先试试吧。
使用此功能,授予该文件夹及其所有父文件夹的帐户权限。