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


Метод Security.CheckUserObjectPermissions

Проверяет, имеет ли текущий пользователь одно или несколько разрешений категории безопасности для объекта проекту или ресурсу.

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

Синтаксис

'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Security/CheckUserObjectPermissions", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Security/",  _
    ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Security/",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function CheckUserObjectPermissions ( _
    objectUid As Guid, _
    objectTypeUid As Guid, _
    categoryPermissionUids As Guid() _
) As Boolean()
'Применение
Dim instance As Security
Dim objectUid As Guid
Dim objectTypeUid As Guid
Dim categoryPermissionUids As Guid()
Dim returnValue As Boolean()

returnValue = instance.CheckUserObjectPermissions(objectUid, _
    objectTypeUid, categoryPermissionUids)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Security/CheckUserObjectPermissions", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Security/", 
    ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Security/", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public bool[] CheckUserObjectPermissions(
    Guid objectUid,
    Guid objectTypeUid,
    Guid[] categoryPermissionUids
)

Параметры

  • objectTypeUid
    Тип: System.Guid

    GUID типа объекта.

  • categoryPermissionUids
    Тип: []

    Массив из одного или нескольких разрешение категории идентификаторов GUID.

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

Тип: []
Массив значений Boolean для каждого значения в параметре categoryPermissionUids .

Замечания

Чтобы избежать указание objectTypeUid, можно использовать CheckUserProjectPermissions или CheckUserResourcePermissions вместо CheckUserObjectPermissions. Проверка разрешений безопасности для другого ресурса требуется использование олицетворения выполнить вход в качестве ресурса.

Для параметра objectTypeUid используйте структуру PSSecurityObjectType для получения идентификатора GUID для типа объекта Project или Resource . Для параметра categoryPermissionUid используйте структуру PSSecurityCategoryPermission , чтобы получить GUID разрешения категории по умолчанию, или используйте ReadCategoryPermissions , чтобы получить идентификаторы GUID для разрешения настраиваемые категории.

Разрешения Project Server

Разрешение

Описание

LogOn

Позволяет пользователю войти в Project Server. Глобальное разрешение.

Примеры

В следующем примере проверяется, имеет ли текущий пользователь три определенную категорию разрешения для проекта. Дополнительные сведения и полный пример приложения в разделе С помощью методов безопасности в PSI.

using System;
using System.Net;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
CookieContainer cookiecontainer = new CookieContainer();
SvcSecurity.Security security = new SvcSecurity.Security();
security.Url = "https://ServerName/ProjectServerName/_vti_bin/psi/security.asmx";
security.CookieContainer = cookiecontainer;
security.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Set the GUID for an existing project.
Guid projectUid = new Guid("BC323C21-B7E4-4631-AF99-C44E5C52BA4E");
Guid objectType = PSLibrary.PSSecurityObjectType.Project;

Guid[] permissionChecks = { 
   PSLibrary.PSSecurityCategoryPermission.BuildTeamOnProject, 
   PSLibrary.PSSecurityCategoryPermission.SaveProtectedBaseline, 
   PSLibrary.PSSecurityCategoryPermission.ViewProjectWorkspace };

bool[] permissionResults = new bool[permissionChecks.Length];
permissionResults = security.CheckUserObjectPermissions(projectUid, objectType, permissionChecks);

bool permissionOk = true;

for (int i = 0; i < permissionResults.Length; i++)
{
   permissionOk = permissionOk && permissionResults[i];
}
if (permissionOk)
{
   // Continue the application.
}
. . .

См. также

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

Security класс

Элементы Security

Пространство имен WebSvcSecurity

Другие ресурсы

С помощью методов безопасности в PSI (en)

Пошаговое руководство: Создание и использование настраиваемые разрешения Project Server