我对所有具有PrincipalPermission属性的业务对象都有一个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
}
,不会你知道,这只是罚款....任何想法,为什么它的工作的一种方式而不是其他!?
如果你用@Steven注释来装饰类,任何人都知道为什么方法装饰不起作用?我也遇到同样的情况。 – JasonS 2012-01-24 07:02:50
下面是答案:http://connect.microsoft.com/VisualStudio/feedback/details/95127/nested-principalpermission-not-applied – JasonS 2012-01-24 19:04:19
答案已消失。也许在评论中描述它? – 2015-03-25 14:55:45