Security.CreateCategories メソッド
1 つ以上のセキュリティ カテゴリを作成します。
名前空間: WebSvcSecurity
アセンブリ: ProjectServerServices (ProjectServerServices.dll 内)
構文
'宣言
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Security/CreateCategories", 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 Sub CreateCategories ( _
categories As SecurityCategoriesDataSet _
)
'使用
Dim instance As Security
Dim categories As SecurityCategoriesDataSet
instance.CreateCategories(categories)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Security/CreateCategories", 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 void CreateCategories(
SecurityCategoriesDataSet categories
)
パラメーター
categories
型: WebSvcSecurity.SecurityCategoriesDataSet1 つ以上のセキュリティ カテゴリに関する情報が含まれています。
注釈
categoriesパラメーターは、新しいカテゴリを定義するには、少なくとも 1 つのSecurityCategoriesDataSet.SecurityCategoriesRowを含める必要があります。SecurityCategoriesDataTableのSecurityCategoriesRowの複数のオブジェクトを含めることができます。Project Server には、次のそれぞれのSecurityCategoriesRowを検証します。
一意のカテゴリ名および GUID
ユーザーとグループ (ある場合) のカテゴリ アクセス許可を持っています。
カテゴリ内のプロジェクト (ある場合) の存在
カテゴリ内のリソース (存在する場合) の存在
7 つのDataTableオブジェクトは、 SecurityCatagoriesDataSetにあります。SecurityCategoriesDataTableのみのデータを含める必要があります。データ テーブルでは、通りです。
SecurityCategories各行には、カテゴリ GUID、名、および説明を指定します。セキュリティ カテゴリを作成するには、GUID と名前を (WSEC_CAT_UID および WSEC_CAT_NAME) が必要です。
UserRelations オプション。各行で、カテゴリ GUID およびリソース GUID を指定します。
GroupRelations オプション。カテゴリ GUID およびグループ GUID を指定します。
UserPermissions省略可能です。各行は、カテゴリ GUID、リソース GUID、および、アクセス許可を指定し、 AllowまたはDenyのアクセス許可を設定します。
GroupPermissions省略可能です。各行は、カテゴリ GUID、グループ GUID、および、アクセス許可を指定し、 AllowまたはDenyのアクセス許可を設定します。
SecurityCategoryObjects オプション。各行で、カテゴリ GUID、オブジェクトの種類 (プロジェクトまたはリソース)、およびオブジェクト GUID を指定します。
SecurityCategoryRules省略可能です。各行には、カテゴリ GUID、オブジェクトの種類 (プロジェクトまたはリソース)、およびルールの種類を指定します。ルールの列挙型の概要については、 ProjectSecurityRulesおよびResourceSecurityRulesを参照してください。
有効なカテゴリの例についてを追加またはカテゴリの編集] ページで、フィールドと設定を参照してくださいするには、カテゴリの管理] ページではProject Web Appカテゴリをクリックします。
プロジェクト サーバーのアクセス許可
権限 |
説明 |
---|---|
Project Server のセキュリティを管理することができます。グローバル アクセス権。 |
例
次の使用例は、 CreateCategories 、 SecurityCategoriesDataSetmultiCategoryDsで指定されている 2 つのセキュリティ カテゴリを作成するを呼び出します。
詳細については、グループに 1 つのセキュリティ カテゴリを作成する完全なサンプル アプリケーションは、PSI のセキュリティ メソッドを使用してを参照してください。サンプル アプリケーションに次のコードを追加し、 resourceGuidの値を変更できます。アプリケーションを実行した後でProject Web Appカテゴリの管理ページを開くし、クリックし、[テスト カテゴリ 1カテゴリ 2 のテスト結果を表示します。
/*
* Add this code to the sample code in the article
* Using Security Methods in the PSI.
*/
// Set the GUID for an existing resource.
Guid resourceUid = new Guid("a1fcbf91-e91d-44e2-a4a7-3b4b698cb984");
Guid category1Guid = Guid.NewGuid();
Guid category2Guid = Guid.NewGuid();
SvcSecurity.SecurityCategoriesDataSet multiCategoryDs =
new SvcSecurity.SecurityCategoriesDataSet();
SvcSecurity.SecurityCategoriesDataSet.SecurityCategoriesRow category1Row =
multiCategoryDs.SecurityCategories.NewSecurityCategoriesRow();
SvcSecurity.SecurityCategoriesDataSet.SecurityCategoriesRow category2Row =
multiCategoryDs.SecurityCategories.NewSecurityCategoriesRow();
category1Row.WSEC_CAT_UID = category1Guid;
category1Row.WSEC_CAT_NAME = "Test Category 1";
category1Row.WSEC_CAT_DESC = "This is test category 1.";
multiCategoryDs.SecurityCategories.AddSecurityCategoriesRow(category1Row);
category2Row.WSEC_CAT_UID = category2Guid;
category2Row.WSEC_CAT_NAME = "Test Category 2";
category2Row.WSEC_CAT_DESC = "This is test category 2.";
multiCategoryDs.SecurityCategories.AddSecurityCategoriesRow(category2Row);
// (Optional) Add a user to category 1.
SvcSecurity.SecurityCategoriesDataSet.UserRelationsRow userRelationsRow =
multiCategoryDs.UserRelations.NewUserRelationsRow();
userRelationsRow.WSEC_CAT_UID = category1Guid;
// Change the following GUID to a resource that is on your system.
Guid existingResUid = new Guid("88979803-2230-48b4-b23b-4af0e4a40392");
userRelationsRow.RES_UID = existingResUid;
multiCategoryDs.UserRelations.AddUserRelationsRow(userRelationsRow);
// (Optional) Specify the permissions for the user on category 1.
SvcSecurity.SecurityCategoriesDataSet.UserPermissionsRow userPermRow =
multiCategoryDs.UserPermissions.NewUserPermissionsRow();
userPermRow.WSEC_CAT_UID = category1Guid;
userPermRow.RES_UID = existingResUid;
userPermRow.WSEC_ALLOW = true;
// For example, add the "Open Project" permission.
userPermRow.WSEC_FEA_ACT_UID = PSLibrary.PSSecurityCategoryPermission.OpenProject;
multiCategoryDs.UserPermissions.AddUserPermissionsRow(userPermRow);
// (Optional) Add an object (project or resource) to category 2.
SvcSecurity.SecurityCategoriesDataSet.SecurityCategoryObjectsRow category2ObjectRow =
multiCategoryDs.SecurityCategoryObjects.NewSecurityCategoryObjectsRow();
category2ObjectRow.WSEC_CAT_UID = category2Guid;
category2ObjectRow.WSEC_OBJ_TYPE_UID = PSLibrary.PSSecurityObjectType.Project;
// Add an existing project to category 2.
// Change the following GUID to a project that is on your system.
category2ObjectRow.WSEC_OBJ_UID = new Guid("BC323C21-B7E4-4631-AF99-C44E5C52BA4E");
multiCategoryDs.SecurityCategoryObjects.AddSecurityCategoryObjectsRow(category2ObjectRow);
// (Optional) Set some dynamic rules on category 2.
SvcSecurity.SecurityCategoriesDataSet.SecurityCategoryRulesRow category2RulesRow1 =
multiCategoryDs.SecurityCategoryRules.NewSecurityCategoryRulesRow();
category2RulesRow1.WSEC_CAT_UID = category2Guid;
category2RulesRow1.WSEC_OBJ_TYPE_UID = PSLibrary.PSSecurityObjectType.Project;
category2RulesRow1.WSEC_OBJ_RULE_TYPE = (int)PSLibrary.ProjectSecurityRules.OwnerAtSameRbsNode;
multiCategoryDs.SecurityCategoryRules.AddSecurityCategoryRulesRow(category2RulesRow1);
SvcSecurity.SecurityCategoriesDataSet.SecurityCategoryRulesRow category2RulesRow2 =
multiCategoryDs.SecurityCategoryRules.NewSecurityCategoryRulesRow();
category2RulesRow2.WSEC_CAT_UID = category2Guid;
category2RulesRow2.WSEC_OBJ_TYPE_UID = PSLibrary.PSSecurityObjectType.Project;
category2RulesRow2.WSEC_OBJ_RULE_TYPE = (int)PSLibrary.ProjectSecurityRules.AllCurrentAndFuture;
multiCategoryDs.SecurityCategoryRules.AddSecurityCategoryRulesRow(category2RulesRow2);
SvcSecurity.SecurityCategoriesDataSet.SecurityCategoryRulesRow category2RulesRow3 =
multiCategoryDs.SecurityCategoryRules.NewSecurityCategoryRulesRow();
category2RulesRow3.WSEC_CAT_UID = category2Guid;
category2RulesRow3.WSEC_OBJ_TYPE_UID = PSLibrary.PSSecurityObjectType.Project;
category2RulesRow3.WSEC_OBJ_RULE_TYPE = (int)PSLibrary.ProjectSecurityRules.ManagedByUser;
multiCategoryDs.SecurityCategoryRules.AddSecurityCategoryRulesRow(category2RulesRow3);
security.CreateCategories(multiCategoryDs);