我有一个Principal 用户。
我知道我可以通过以下方式检查用户是否是管理员:
Thread.CurrentPrincipal.IsInRole("管理员")
我也看到了:
PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
principalPerm.Demand(); //under a try-catch cntext
根据我的测试,它们返回相同的结果
问题:
- 它们是一样的吗?
- 如果不是,我什么时候应该使用哪个?
最佳答案
Demand()
调用会抛出异常,如果没有捕获到该异常,则会自动向上传播调用堆栈,IsInRole()
调用是一个比较测试,可以用于执行一些非此即彼的代码。
它们是否相同:不,一个抛出异常,另一个返回 true/false 值。
什么时候应该使用which:如果您想强制终止处理,请使用Demand()
,如果您没有权限,请使用IsInRole()
来执行条件处理。
关于c# - IPrincipal.IsInRole VS PrimaryPermission.Demand?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962326/