我在我的 XAF 项目中使用新的安全系统。我创建了自定义安全类“ExtendedSystemSecurityRole”和“SecuritySystemUser”。在 Updater 类中,我创建了一个名为“G1”的角色及其权限,如下所示。但是运行时,用户“John”看不到“买家”表单。
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);
}