gpt4 book ai didi

c# - IPrincipal.IsInRole VS PrincipalPermission.Demand?

转载 作者:行者123 更新时间:2023-11-30 20:57:14 24 4
gpt4 key购买 nike

我有一个使用 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 PrincipalPermission.Demand?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com