我有一个校长用户。
我知道我可以通过以下方式检查用户是否为管理员:Thread.CurrentPrincipal.IsInRole("Administrators")
我也看到了:
PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
principalPerm.Demand(); //under a try-catch cntext
根据我的测试,他们返回的结果相同
题 :
他们是一样的吗?
如果没有,我应该什么时候使用?
最佳答案
Demand()
调用引发异常,如果未被捕获,它将自动提升调用堆栈,IsInRole()
调用是一个比较测试,可用于执行某些“或”代码。
它们是否相同:否,一个抛出异常,另一个返回true / false值。
我应该什么时候使用:如果没有特权,如果要强制终止处理,请使用Demand()
,请使用IsInRole()
进行条件处理。