MVC 4自定义成员资格提供商的麻烦

时间:2013-03-08 17:29:08

标签: asp.net-mvc membership-provider

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

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

令我感到困惑的是因为我认为简单成员资格提供程序代码不会执行,因为web.config设置会禁用它。

有人能向我指出我做错了什么吗?谢谢!

1 个答案:

答案 0 :(得分:2)

默认帐户控制器使用该属性进行修饰。检查是否仍然存在。

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

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