在ASP Identity中使用表单身份验证表

时间:2015-04-11 08:56:01

标签: asp.net asp.net-mvc asp.net-identity

我有一个在asp.net中使用Forms身份验证创建的数据库,但现在我想开发一个使用相同用户名和密码的其他应用程序,并且应该能够登录到使用MVC 5开发的新应用程序Aspnet身份。因此,我希望能够使用旧的信用卡在新应用程序中对用户进行身份验证。

我的旧数据库结构

enter image description here

我知道Asp Identity Individual Authentication模式会生成其他一组表格,我也想停止这种默认行为,因为我不想在旧Db中创建Iddentity表。

请指导我如何实现这一目标。感谢

2 个答案:

答案 0 :(得分:0)

默认情况下,Web窗体和MVC都使用ASP.NET成员身份。如果您的旧应用程序使用成员资格提供程序,则应该很容易使其适应MVC。如果没有,您可以选择创建使用现有数据库的新成员资格提供程序,也可以替换MVC应用程序的身份验证机制。

我建议您将此作为研究的起点:http://weblogs.asp.net/jongalloway/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way

或者,您可以通过多种方式将用户帐户从旧应用程序迁移到新的MVC应用程序。如果不需要与旧应用程序向后兼容,这可能是您最好的(最简单)选项。

答案 1 :(得分:0)

所以在我尝试过的事情之后。我有它的工作。

1)为web提供者安装nuget包

Install-Package Microsoft.AspNet.Providers.Core

2)复制这些Web配置部分,并将其添加到部分

下的Web配置中
<profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </profile>
    <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <roleManager defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </roleManager>

3)将默认的connectionString指向包含用户的现有数据库,或者您可以添加新的连接字符串,并在上面的Web配置部分中使用该名称替换&#34; DefaultConnection&#34;使用&#34; newConnection&#34;

现在你很高兴。

只需Membership.ValidateUser("username","password")

验证用户的有效性