Aspnet会员资格是否需要完全信任?

时间:2012-08-09 04:54:03

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

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

  

请求类型的许可   'System.Security.Permissions.SecurityPermission,mscorlib,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'   失败。

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

2 个答案:

答案 0 :(得分:0)

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)如果这没有帮助,请尝试在<trust level="Full" />标记内的web.config文件中使用put <system.web>

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

4)转到“控制面板”/“管理工具”/“Microsoft .NET Framework” 配置/配置安全设置。 然后单击左侧的My Computer-&gt; Runtime Security Policy节点 “调整区域安全性”链接在右侧,给予它完全信任

答案 1 :(得分:0)

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