【问题标题】:How do you check if you are running in Medium Trust environment in .NET?如何检查您是否在 .NET 的中等信任环境中运行?
【发布时间】:2009-09-02 17:23:23
【问题描述】:

我在 GoDaddy 的共享主机上运行一个网站(不是我的选择,因为它始终是中等信任),如果应用程序在高信任下运行,我想打开一些高级功能。

所以想知道,是否有一种方法可以在运行时检查应用程序是否在 .NET 的中等信任环境中运行?

【问题讨论】:

    标签: .net medium-trust


    【解决方案1】:

    你可以试试下面的代码:

    if (!SecurityManager.IsGranted(new RegistryPermission(PermissionState.Unrestricted)))
    {
        //do something.... not at full trust
    }
    
    if (!SecurityManager.IsGranted(new DnsPermission(PermissionState.Unrestricted)))
    {
        //do something.... not at full trust
    }
    

    我从以下链接得到这个: http://www.netomatix.com/development/webcaspermissions.aspx

    这里是 MSDN 中安全管理器和注册表权限类的链接:

    http://msdn.microsoft.com/en-us/library/system.security.securitymanager.isgranted.aspx http://msdn.microsoft.com/en-us/library/system.security.permissions.registrypermission.aspx

    您需要添加对 System.Security 的引用,并为 System.Security 和 System.Security.Permissions 添加几个 using 语句。

    编辑:

    在尼克的评论之后添加:

    您可以直接测试 asp.net 安全级别:

    if (SecurityManager.IsGranted( new AspNetHostingPermission(AspNetHostingPermissionLevel.Medium)))
    {Response.Write("Medium Trust level");}
    

    【讨论】:

    • 我认为对于 ASP.NET,AspNetHostingPermission 更合适。
    • 不错的尼克。我添加了它作为示例。
    • .net 4.0 已弃用这种方式设置权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    相关资源
    最近更新 更多