我已经在 SharePoint 2007 中创建了一个测验 Web 部件,但被困在一个权限上。它需要将测验分数写入一个列表,现在在尝试时会抛出错误。我假设如果 Web 部件具有适当的权限级别,则用户的权限(测验者)无关紧要。

是否有允许 webpart 写入列表的特定权限?具体来说:

 SPListItem item = listItems.Add();

最佳答案

如果当前用户对列表具有写入(贡献)访问权限,则 webpart 只能写入列表。如果您不希望用户访问该列表,您可以提升写入该列表的权限。这将导致系统帐户创建列表项。

SPSecurity.RunWithElevatedPrivileges(WriteToList);

private void WriteToList()
{
    // create new SPSite and SPWeb objects.  This is important, if you
    // don't then the write won't use the elevated privileges.
    using(SPSite site = new SPSite(SPContext.Current.Site.ID))
    {
        using(SPWeb web = site.OpenWeb(SPContext.Current.Web.ID))
        {
            // Code to Write to the list.
        }
    }
}

有关更多信息,请参阅 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

关于asp.net - SharePoint Web 部件列表写入权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5305768/

10-12 02:24