【问题标题】:.net 4 CAS: Remove specific privilege.net 4 CAS:删除特定权限
【发布时间】:2011-12-02 11:21:14
【问题描述】:

我正在尝试为内部应用程序创建 Web 服务接口。我必须重用很多旧东西,其中包括在我必须使用的各个地方调用 MessageBox.Show()。我尝试验证输入以不打那些调用,但我不能确定我成功了。

因此,我考虑拒绝 UIPrivilege。我喜欢这样:

void DoSomething() {
    new UIPermission(UIPermissionWindow.NoWindows).PermitOnly();
    DoTheRealWork();
}

这在某种意义上是有效的,它不允许任何 UI,但它也不允许代码需要的无关权限(例如 OleDbPermission)。如何仅拒绝 UIPermission,而不涉及任何其他权限(代码具有完全信任)。

UIPermission.Deny() 在 .net framework 4 中已过时,使用时会报错,因此不是有效答案)。

【问题讨论】:

    标签: .net .net-4.0 code-access-security


    【解决方案1】:

    您到底想完成什么?您的 Web 服务不应在 UserInteractive 模式下运行1,因此如果代码尝试显示消息框,它应该会引发运行时异常。如果您确实成功地限制了权限(除了异常详细信息),这与您会看到的行为相同,那么为什么还要为权限限制杂乱而烦恼呢?




    1默认情况下,在 IIS 下部署的 Web 服务不会以用户交互方式运行。但是,如果您在 Cassini 开发 Web 服务器下运行,则情况并非如此,因此您应该检查 IIS 部署下的行为。

    【讨论】:

      猜你喜欢
      • 2020-10-23
      • 2014-11-17
      • 2021-06-22
      • 2011-03-22
      • 2016-01-05
      • 2020-06-25
      • 2012-11-10
      • 2011-12-11
      • 1970-01-01
      相关资源
      最近更新 更多