在一个数据库中组合MVC4和Symfony2用户
本文关键字:MVC4 组合 Symfony2 用户 数据库 一个 | 更新日期: 2023-09-27 17:53:30
我有一个webapp,前台使用Symfony2,后台使用ASP。. NET MVC4(在你告诉我之前,是的,我知道这是一个荒谬的设置,但这些是我们必须遵守的约束)。
我现在想在我的数据库中有一个用户表,用户可以从前台(SF2)和后台(MVC4)登录。我使用FOSUserBundle在Symfony2端管理我的用户,但我还没有决定我应该为应用程序的MVC4部分使用哪个会员提供程序,主要是因为我不知道如何在ASP端验证用户。
FOSUserBundle在注册用户/更改密码时使用5000次迭代的SHA512。散列密码和密码盐都存储在数据库中——这一切都很好。问题是,我不确定我应该如何在MVC4应用程序中使用这些数据;我做了一些研究,看看我是否可以改变哈希算法等,但这需要我做一个自定义的会员提供程序,这对于以前从未使用过MVC4的人来说有点令人生畏。
谁能给我指个正确的方向?非常感谢。您可以使用write a custom membership provider
来查询数据库。基本上,您必须编写一个从MembershipProvider
派生的类,并实现您想要使用的方法。有许多方法,但您可能不需要重写所有方法。例如,ValidateUser
方法需要用户名和密码,由您来处理这种情况。
public class MyCustomMembershipProvider: MembershipProvider
{
...
}
,然后您可以在您的web中注册这个自定义会员资格提供者。
<membership defaultProvider="MyCustomMembershipProvider">
<providers>
<clear/>
<add name="MyCustomMembershipProvider"
type="MvcApplication1.Providers.MyCustomMembershipProvider" />
</providers>
</membership>
现在,当你在你的LogOn操作中调用Membership.ValidateUser
时,它将委托给你的自定义提供程序。