XAF プロジェクトで新しいセキュリティ システムを使用しています。カスタム セキュリティ クラス「ExtendedSystemSecurityRole」と「SecuritySystemUser」を作成しました。Updater クラスで、「G1」という名前のロールとその権限を次のように作成しました。しかし、実行中、ユーザー "John" は "Buyer" フォームを見ることができません。
ExtendedSecuritySystemRole basicUserRole = ObjectSpace.FindObject<ExtendedSecuritySystemRole>(new BinaryOperator("Name", "G1"));
if (basicUserRole == null)
{
basicUserRole = ObjectSpace.CreateObject<ExtendedSecuritySystemRole>();
basicUserRole.Name = "G1";
SecuritySystemTypePermissionObject userTypePermission =
ObjectSpace.CreateObject<SecuritySystemTypePermissionObject>();
userTypePermission.TargetType = typeof(Buyer);
SecuritySystemObjectPermissionsObject currentUserObjectPermission =
ObjectSpace.CreateObject<SecuritySystemObjectPermissionsObject>();
currentUserObjectPermission.Criteria = "[Active] = True";
currentUserObjectPermission.AllowNavigate = true;
currentUserObjectPermission.AllowRead = true;
userTypePermission.ObjectPermissions.Add(currentUserObjectPermission);
basicUserRole.TypePermissions.Add(userTypePermission);
}
ExtendedSecuritySystemUser userJohn =
ObjectSpace.FindObject<ExtendedSecuritySystemUser>(
new BinaryOperator("UserName", "John"));
if (userJohn == null)
{
userJohn = ObjectSpace.CreateObject<ExtendedSecuritySystemUser>();
userJohn.UserName = "John";
userJohn.SetPassword("");
userJohn.Roles.Add(basicUserRole);
}