我有一个校长用户。

我知道我可以通过以下方式检查用户是否为管理员:

Thread.CurrentPrincipal.IsInRole("Administrators")

我也看到了:

PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
principalPerm.Demand(); //under a try-catch cntext


根据我的测试,他们返回的结果相同

题 :


他们是一样的吗?
如果没有,我应该什么时候使用?

最佳答案

Demand()调用引发异常,如果未被捕获,它将自动提升调用堆栈,IsInRole()调用是一个比较测试,可用于执行某些“或”代码。

它们是否相同:否,一个抛出异常,另一个返回true / false值。

我应该什么时候使用:如果没有特权,如果要强制终止处理,请使用Demand(),请使用IsInRole()进行条件处理。

07-28 07:22