1

我希望这个问题的答案和我想的一样直截了当。我只是想确定一下。所以,我有一个使用表单身份验证的 ASP.NET MVC4 应用程序。我有一个由 Arvixe 托管的数据库,其中包含 aspnet_ 成员表。这是我在 web.config 的连接字符串中指定的数据库。那么,当我点击我的应用程序的 Login.cshtml 页面并输入我的凭据时,它是否针对我在 web.config 中指定的数据库中的数据进行身份验证?

带来这个问题的原因是我通过 MyWSAT(允许管理用户帐户、角色等的第三方网站管理工具)在我的数据库中设置了一个用户。我已经确认该用户现在已添加到 aspnet_Membership 和 aspnet_User 表(以及任何其他表)中。但是,当我尝试使用我的应用程序中的这些凭据登录时,它Membership.ValidateUser在我的 AccountController 中失败。它回来说无效的用户名/密码。关于我可能做错了什么的任何想法?

这是我的会员提供商:

<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">
  <providers>
    <add
      name="SqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="DefaultConnection"
      applicationName="/"
      enablePasswordRetrieval="true"
      enablePasswordReset="true"
      maxInvalidPasswordAttempts="5"
      requiresQuestionAndAnswer="true"
      requiresUniqueEmail="true"
      passwordFormat="Encrypted" />
  </providers>
</membership>
4

2 回答 2

1

你看到下面的“connectionStringName”了吗?这命名了它使用的连接字符串。因此,请查看您的 web.config 并找到名为“DefaultConnection”的连接字符串,并确保它指向正确的数据库或更改 connectionStringName 以指向正确的连接字符串。

<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">
  <providers>
    <add
      name="SqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="DefaultConnection"
      applicationName="/"
      enablePasswordRetrieval="true"
      enablePasswordReset="true"
      maxInvalidPasswordAttempts="5"
      requiresQuestionAndAnswer="true"
      requiresUniqueEmail="true"
      passwordFormat="Encrypted" />
  </providers>
</membership>
于 2013-04-05T16:22:23.080 回答
1

问题是我的应用程序名称需要是“MyCMS”而不是空白。当我从 MyWSAT 工具设置用户帐户时,我最初在 MyWSAT 项目(ASP.NET 配置网站)中的 WSAT 工具下设置了管理员帐户,与此关联的应用程序名称是 MyCMS。

于 2013-04-05T16:33:38.400 回答