此配置适用于经典模式下的SP2010或SP2007 .
我们有一个WCF服务,作为Sharepoint网站下的应用程序安装 . 此应用程序使用基本身份验
我得到了 UnauthorizedAccessException . 异常消息是
访问被拒绝 . (来自HRESULT的异常:0x80070005(E_ACCESSDENIED)) .
在调试器中,我注意到在SPWeb对象上,CurrentUser属性为null .
我需要做什么才能允许此用户通过基本身份验证来读取共享点列表?
using (SPSite siteCollection = new SPSite(url))
{
using (SPWeb rootWeb = siteCollection.OpenWeb())
{
DataTable news = ReadNews(rootWeb, (uint)sizeNumber);
/// continues...
1 回答
嗯...迟到总比没有好 . 我今天遇到了同样的问题 . 当您在_Layouts文件夹中发布.ASPX页面时会出现问题,然后,在使用Forms或Claims auth时,使该自定义页面成为会话中的第一个页面(之前没有记住登录) . 默认情况下不会触发SharePoint身份验证(即使您从LayoutsPageBase类继承) . 如果您导航到其他某个SharePoint页面(例如_Layouts / 15 / Settings.aspx)然后返回,则填写CurrentUser . 我必须使用Reflector来更好地了解发生了什么,以及如何修理它 . 简短的回答是,一旦你意识到CurrentUser == null,你需要添加这行代码:
在我的例子中,此代码生成对浏览器的质询/响应,我曾经登录过,并且紧跟在这行代码之后,CurrentUser对象被正确填充 . 这是我的整个功能最终看起来像: