我正在创建一个新的中间层,我们所有的客户端调用都将通过WCF服务。我们在服务中使用ASP.NET成员身份来验证用户身份。中间层将访问现有数据库,其中我们已经有一个包含用户名和密码的InetUsers表。
这是它开始变得混乱的地方。这个新的中间层将由我们的Web应用程序使用,但不会由我们现有的桌面应用程序使用,这将在我们将来的某个时候重写它 - 使用旧的COM +中间层。 Web应用程序的用户管理在桌面应用程序中进行。换句话说,将在桌面应用程序中创建用户并设置和更改密码,而桌面应用程序又会访问现有的InetUsers表。
理想情况下,当我们部署新的中间层时,我们将从InetUsers表中获取所有用户并在aspnet_Users和aspnet_Membership中为它们创建记录。然后我们将在InetUsers表上设置一个触发器,以使aspnet_Users和aspnet_Membership保持最新。
这里有很多问题,所以我会尝试在这里列出所有问题:
非常感谢所提供的任何帮助。
答案 0 :(得分:5)
如果您已有数据库结构,我会编写自定义成员资格提供程序并跳过现有的成员资格结构。这样您就可以使用开发人员已经习惯的一种数据库结构,无论是用于数据访问,报告还是其他目的。创建一个继承MembershipProvider的类。请注意这一点:http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx或http://www.devx.com/asp/Article/29256/0/page/3。
您只需要实现您实际需要的功能。
答案 1 :(得分:1)
对您自己的会员提供商进行编码并非“困难”。如果您计划使用混合解决方案一段时间,那么推出自己的提供商可能比在两个地方维护数据更清晰。
然后,当您准备转移到新的标准成员资格提供程序时,只需将用户转移一次并重新指向桌面和Web界面的新提供程序即可。< / p>