ASP.Net MVC 5 - 安全透明方法'WebMatrix.WebData.SimpleMembershipProvider.ValidateUser访问安全方法失败

时间:2015-04-14 22:22:27

标签: validation authentication asp.net-web-api asp.net-mvc-5 simplemembership

我在asp.net web api项目中使用Simplemembership。当我尝试使用以下代码验证用户时,我收到错误(错误1)

 if (!Membership.ValidateUser(username, password))
       {
         throw new ValidationException("Username or pwassword is incorrect.");
       }

错误1:

  

尝试安全透明方法   ' WebMatrix.WebData.SimpleMembershipProvider。   ValidateUser(System.String,System.String)'访问安全性   批判方法   ' System.Web.WebPages.StringExtensions.IsEmpty(System.String)'失败。

之前我遇到了类似的错误(错误2),我通过安装这些软件包解决了这个问题:

Install-Package Microsoft.AspNet.WebHelpers

Install-Package Microsoft.AspNet.WebPages.Data

错误2:

  

尝试安全透明方法   ' WebMatrix.WebData.PreApplicationStartCode.OnConnectionOpened(   System.Object,WebMatrix.Data.ConnectionEventArgs)'访问安全性   关键方法' System.Web.WebPages。   HttpContextExtensions.RegisterForDispose(System.Web.HttpContextBase,   System.IDisposable的)'失败。

我确实清理了解决方案但尝试了,仍然遇到同样的错误, 我是否需要安装更多软件包,或者甚至简单的会员工作在web api?

1 个答案:

答案 0 :(得分:0)

目前我的修复方法是升级到.Net 4.5.3。我认为这是出于挫败感。在升级到网页3.2.3之后,这个问题不仅影响MVC 5,还影响核心Webmatrix项目。我认为这是一个框架问题,将通过新的Microsoft身份修复。目前我的修复方法如下: 注意:请使用visual studio中的属性页向导将目标框架更改为.Net Framework 4.5.3。它将更新您的web.config

<compilation debug="true" targetFramework="4.5.3">
  <assemblies>
    <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
  </assemblies>
</compilation>

第1步:安装 - 打包Microsoft.AspNet.WebHelpers

第2步:安装 - 打包Microsoft.AspNet.WebPages.Data

第3步:[可选]安装包Owin

步骤4:通过“属性页”对话框将targetFramework更改为.Net 4.5.3

enter image description here