System.Web.Providers不适用于中等信任

时间:2013-04-16 14:19:54

标签: asp.net asp.net-membership medium-trust

我有一个使用Microsoft ASP.NET Universal Providers(NuGet)的ASP.NET WebForms应用程序用于成员资格和角色。在完全信任下一切正常,但是当我编辑web.config以指定中等信任时,我在加载访问成员资格的页面时遇到此错误:

类型'System.Web.Providers.DefaultMembershipProvider'无法在部分受信任的安全策略下实例化(目标程序集中不存在AllowPartiallyTrustedCallersAttribute)。

我搜索了网络,但没有找到关于这是否是已知限制或是否有解决方法的详细信息。我正在研究开源应用程序Gallery Server Pro,它在MS Web Gallery中分发,必须支持中等信任环境。

有什么见解?

[编辑]根据请求,这是web.config的东西(我没有使用配置文件或会话状态提供程序):

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add name="DefaultMembershipProvider" applicationName="Gallery Server Pro" connectionStringName="GalleryDb" passwordFormat="Clear" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="2" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" defaultProvider="DefaultRoleProvider">
  <providers>
    <clear />
    <add name="DefaultRoleProvider" applicationName="Gallery Server Pro" connectionStringName="GalleryDb" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</roleManager>

1 个答案:

答案 0 :(得分:1)

我认为可能是因为在cookie中扮演角色,

<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" ...

删除该部分,或将其设为false,然后检查其是否正常工作..

由于中等安全性会阻止cookie和更多内容,因为cookie不被认为是安全的。它是清道夫的基本材料(从遗留/临时文件中窃取数据)。

我希望这样做..