У меня есть метод Delete для всех моих бизнес-объектов, в котором есть атрибут PrincipalPermission.
Пример:
[PrincipalPermission(SecurityAction.Demand, Role = "Vendor Manager")]
public static bool Delete(Vendor myVendor)
{
//do work here
}
Проблема в том, что он, похоже, полностью игнорирует мою PrincipalPermission. Он пропускает всех, независимо от того, в какой роли они могут быть.
Есть что-то еще, что я забыл сделать? Я добавил следующее в global.asax моего приложения в разделе «Запуск приложения»:
AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);
Но это тоже не имеет значения.
Я также только что попробовал следующее:
public static bool Delete(Vendor myVendor)
{
PrincipalPermission iPerm = new PrincipalPermission(null, "Vendor Manager");
iPerm.Demand();
//do work here
}
и разве вы не знаете, это прекрасно работает!