【问题标题】:MVC 4 Custom Membership Provider troublesMVC 4 自定义成员资格提供程序问题
【发布时间】:2013-03-08 17:29:08
【问题描述】:

我正在处理我的第一个真正的 MVC 项目,我的任务是实现自定义成员资格提供程序。我之前在 asp.net 3.5 Web Forms 中实现过一个,所以如果可能的话,我会尝试重用其中的一些代码。 我们的数据来自远程 Web 服务,因此我不会使用任何标准的会员数据库。 基于对 Web 表单的一些研究和经验,我创建了我的课程:

public class wwdllMembershipProvider : MembershipProvider

我在 web.config 中加入了以下内容:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
  <membership defaultProvider="wwdllMembershipProvider" userIsOnlineTimeWindow="15">
      <providers>
          <add name="wwdllMembershipProvider" type="wwdllMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" writeExceptionsToEventLog="false" enablePasswordChange="true" />
      </providers>
  </membership>

从那里我只是想看看我的会员提供程序中的任何存根代码是否被命中。但是当我点击应用程序中的登录链接时,我会收到以下错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例) 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)

来源错误:

Line 55:                     using (var context = new UsersContext())
Line 56:                     {
Line 57:                         if (!context.Database.Exists())
Line 58:                         {
Line 59:                             // Create the SimpleMembership database without Entity Framework migration schema


Source File: c:\Users\mburt\Documents\Visual Studio 2012\Projects\eSales\4300\Siriusware.eSales\Filters\InitializeSimpleMembershipAttribute.cs    Line: 57

这让我感到困惑,因为我不认为 Simple Membership Provider 代码会因为 web.config 设置禁用它而执行。

有人可以指出我做错了什么吗?谢谢!

【问题讨论】:

  • 您可能需要编辑信息以从这个相当公开的列表中删除您的姓名和公司。

标签: asp.net-mvc membership-provider


【解决方案1】:

默认的帐户控制器就是用那个属性修饰的。检查它是否仍然存在。

(下面是默认的 MVC4 项目代码。)

namespace MvcApplication2.Controllers
{
    [Authorize]
    [InitializeSimpleMembership]
    public class AccountController : Controller
    {
        [...]
    }
}

【讨论】:

  • 你是正确的删除 `[InitializeSimpleMembership]' 注释为我解决了谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
相关资源
最近更新 更多