【问题标题】:Does Aspnet Membership require Full Trust?Aspnet 成员资格是否需要完全信任?
【发布时间】:2012-08-09 04:54:02
【问题描述】:

我正在主机上测试我的应用程序,当我尝试访问一个尝试从 Aspnet 成员资格配置文件中读取的页面时,它会返回以下消息:

请求类型的许可 'System.Security.Permissions.SecurityPermission, mscorlib, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089' 失败了。

看起来 Aspnet Membership 要求在完全信任下运行,但托管服务提供商不允许应用程序在完全信任下运行。有没有办法让它在中等信任级别上工作?

【问题讨论】:

  • 看看这个。forums.asp.net/t/1422162.aspx/1你把 放在你的 web.config 文件中的 标签里面了吗?
  • 我尝试将其放在 web.config 上,但我的托管服务提供商不允许应用程序在完全信任下运行。

标签: c# asp.net .net asp.net-mvc asp.net-membership


【解决方案1】:

1) 尝试使用参考中的以下内容 (http://forums.asp.net/t/1422162.aspx/1)

using System;
  namespace ConsoleApplication
  {
     [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]

or

<System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Assert, Unrestricted:=True)> _

   class Program
      {
          static void Main(string[] args)
          {
               ...
          }  
      }
  }

2) 如果这没有帮助,请尝试在 web.config 文件中的 &lt;system.web&gt; 标签内使用 put &lt;trust level="Full" /&gt;

3) 运行此命令caspol.exe -m -ag LocalIntranet_Zone -url \\&lt;network host&gt;\&lt;share name&gt;\ FullTrust -n FullTrustShare
(当然你需要以管理员身份登录才能执行)

4) 转到控制面板/管理工具/Microsoft .NET Framework 配置/配置安全设置。 然后到左侧的我的电脑->运行时安全策略节点并单击 右侧“调整区域安全”链接,完全信任

【讨论】:

  • 我之前看到过如何使应用程序需要完全信任。我的问题是: 1 - Aspnet 会员资格真的需要完全信任才能工作吗? 2 - 有没有办法在中等信任下工作,因为托管服务不允许应用程序在完全信任下运行?无论如何感谢您的建议。
  • 答案是 1) 不,不一定需要完全信任,2)msdn.microsoft.com/en-us/library/ff648344.aspx,希望它能回答您的问题
  • 没错,它在某些情况下不需要完全信任,但看起来如果您要使用个人资料功能,我在使用此功能时无法强制中等信任。我的解决方案是自己实现 Profiles 处理代码。
【解决方案2】:

经过一些研究,看起来 Asp.Net Membership 中的 Profiles 功能需要应用程序的完全信任安全级别。因此,如果有人试图托管使用 Asp.Net Membership 的 Profiles 功能的应用程序,最好检查托管服务提供商是否允许应用程序在完全信任级别下运行。他们中的大多数人没有(我的情况)。我会自己实现一个 Profile 结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多