我大量使用PrincipalPermissionAttribute来要求用户拥有Thread的Principal所需的访问权限(使用角色) - 在我的业务代码中保存了大量的手动检查(显然UI也应检查并禁用按钮等 - 这只是在后端仔细检查)。
我发现基于Principal的安全性非常普遍,特别是对于自定义Principal。但我不使用CAS的东西。
我从未见过有人使用许可证,断言功能。
我怀疑许多开发人员实际上并不了解这些功能。
我认为限制对危险函数的调用可能很有用。
它将取决于你正在做什么,但谁想要使部署比现在更复杂?
当用户通过互联网直接从服务器上运行代码时,.NET代码访问安全性更为相关,在这种情况下,他们不一定信任它自动执行诸如访问文件系统之类的操作。不过,我不知道有谁能让他们的代码像这样。
如果使用ClickOnce部署桌面应用程序,则安全沙箱可以发挥作用。