Поделиться через


Метод SPList.GetUserEffectivePermissions

Получает действующие разрешения для указанного пользователя есть в списке.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Overrides Function GetUserEffectivePermissions ( _
    userName As String _
) As SPBasePermissions
'Применение
Dim instance As SPList
Dim userName As String
Dim returnValue As SPBasePermissions

returnValue = instance.GetUserEffectivePermissions(userName)
public override SPBasePermissions GetUserEffectivePermissions(
    string userName
)

Параметры

  • userName
    Тип: System.String

    Имя пользователя, разрешения которого должны быть возвращены.

Возвращаемое значение

Тип: Microsoft.SharePoint.SPBasePermissions
Побитовое сочетание значений перечисления, которая определяет набор разрешений.

Исключения

Исключение Условие
UnauthorizedAccessException

Текущий пользователь не имеет разрешения на перечисление разрешений.

Примеры

Следующий пример является консольного приложения, который перечисляет всех пользователей во всех группах веб-сайта, проверка, является ли каждый пользователь имеет разрешения на ApproveItems в библиотеке общих документов. Пример, показывающий другой подход к той же задачи DoesUserHavePermissions(SPUser, SPBasePermissions) см.

Imports System
Imports Microsoft.SharePoint

Module Test

    Sub Main()
        Using site As SPSite = New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                ' Get a list to check permissions on.
                Dim listUrl As String = web.RootFolder.ServerRelativeUrl + "shared documents"
                Dim list As SPList = web.GetList(listUrl)

                ' Be sure the current user has permission to check permissions.
                If web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions) Then

                    For Each group As SPGroup In web.Groups
                        For Each user As SPUser In group.Users

                            ' Get the rights mask for a user.
                            Dim permMask As SPBasePermissions = list.GetUserEffectivePermissions(user.LoginName)

                            ' Check if the user has a specific right.
                            Dim hasPermission As Boolean = (permMask & SPBasePermissions.ApproveItems) <> 0
                            Console.WriteLine("{0} {1} permission to approve items.", _
                                              user.LoginName, IIf(hasPermission, "has", "does not have"))
                        Next
                    Next

                End If

            End Using
        End Using
        Console.Write(vbCrLf + "Press ENTER to continue...")
        Console.ReadLine()
    End Sub

End Module
using System;
using Microsoft.SharePoint;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    // Get a list to check permissions on.
                    string listUrl = web.RootFolder.ServerRelativeUrl + "shared documents";
                    SPList list = web.GetList(listUrl);

                    // Be sure the current user has permission to check permissions.
                    if (web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions))
                    {
                        foreach (SPGroup group in web.Groups)
                        {
                            foreach (SPUser user in group.Users)
                            {
                                // Get the rights mask for a user.
                                SPBasePermissions permMask = list.GetUserEffectivePermissions(user.LoginName);

                                // Check if the user has a specific right.
                                bool hasPermission = (permMask & SPBasePermissions.ApproveItems) != 0;
                                Console.WriteLine("{0} {1} permission to approve items.", 
                                                  user.LoginName, hasPermission ? "has" : "does not have");
                            }
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}

См. также

Справочные материалы

SPList класс

Элементы SPList

Пространство имен Microsoft.SharePoint

EffectiveBasePermissions

GetUserEffectivePermissionInfo(String)