我对所有具有 PrincipalPermission 属性的业务对象都有一个 Delete 方法。
例子:
[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
}
而且你不知道,这很好用!....关于为什么它以一种方式工作而不是另一种方式的任何想法?