我有一个在asp.net中使用Forms身份验证创建的数据库,但现在我想开发一个使用相同用户名和密码的其他应用程序,并且应该能够登录到使用MVC 5开发的新应用程序Aspnet身份。因此,我希望能够使用旧的信用卡在新应用程序中对用户进行身份验证。
我的旧数据库结构
我知道Asp Identity Individual Authentication模式会生成其他一组表格,我也想停止这种默认行为,因为我不想在旧Db中创建Iddentity表。
请指导我如何实现这一目标。感谢
答案 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")