我使用基于表单的身份验证为sharepoint中的网站创建了一个自定义功能接收器功能。
但是,每当我尝试激活该功能时(即使基于表单的帐户具有顶级权限),我会得到403 - “要求您登录”。
我可以很好地激活和停用其他功能,而不是我的自定义功能。使用功能接收器创建功能是否有特殊技巧可以让我这样做?
由于
答案 0 :(得分:1)
显然完全可以使用admin-impersonation和RunWithElevatedPrivileges。
以下是感兴趣的人的代码(参见FeatureActivated / -Deactivated方法):
SPSecurity.RunWithElevatedPrivileges(delegate() {
SPWeb _web = properties.Feature.Parent as SPWeb;
SPUserToken sysAdmin = _web.Site.SystemAccount.UserToken;
using (SPSite elevatedSite = new SPSite(_web.Site.ID, sysAdmin)) {
using (SPWeb web = elevatedSite.OpenWeb(_web.ID)) {
//Code goes here...
}
}
});