Я использую новую систему безопасности в своем проекте XAF. Я создал пользовательские классы безопасности «ExtendedSystemSecurityRole» и «SecuritySystemUser». В классе Updater я создал роль с именем «G1» и ее разрешения следующим образом. Но при запуске пользователь «Джон» не может видеть форму «Покупатель».
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);
}