gpt4 book ai didi

c# - 将用户从自定义表迁移到 ASP.NET 成员表

转载 作者:行者123 更新时间:2023-11-30 14:40:28 26 4
gpt4 key购买 nike

我正在创建一个新的中间层,我们所有的客户端调用都将通过 WCF 服务进行。我们在服务中使用 ASP.NET 成员身份来验证用户身份。中间层将访问一个现有数据库,其中我们已经有一个包含用户名和密码的 InetUsers 表。

这是开始变得困惑的地方。这个新的中间层将由我们的 Web 应用程序使用,但不会被我们现有的桌面应用程序使用,除非我们在将来的某个时候重写它,否则它将使用旧的 COM+ 中间层。 Web 应用程序的用户管理发生在桌面应用程序中。换句话说,将从桌面应用程序中创建用户并设置和更改密码,这反过来又会影响现有的 InetUsers 表。

理想情况下,当我们部署新的中间层时,我们将从 InetUsers 表中获取所有用户,并在 aspnet_Users 和 aspnet_Membership 中为他们创建记录。然后,我们将在 InetUsers 表上设置一个触发器,以使 aspnet_Users 和 aspnet_Membership 保持最新。

这里有一大堆问题,所以我会试着把它们都列在这里:

  • 这是正确的方法吗?显然,将这​​些数据放在两个地方并不理想,但请记住,我不是这里的最终决策者,我们在这里有点遗留问题,至少目前是这样。仍然 - 也许有更好的方法。
  • 同样地,编写我们自己的成员(member)提供程序而不是使用 SqlMembershipProvider 会更好吗?这样做有多难/容易?
  • 如果我们使用这种方法,我计划在表的初始填充以及触发器中使用 aspnet_Membership_XXXX 存储过程。对此做了一些研究后,看来如果我想直接从 SQL 调用 aspnet_Membership_CreateUser(即在触发器中......)而不是使用 API,我必须存储明文密码,因为我无法获取盐和否则哈希权。这是真的?
  • 这一切是否有意义,或者我是否以错误的方式开始?

非常感谢提供的任何帮助。

最佳答案

如果您已经有了数据库结构,我会编写一个自定义成员资格提供程序并跳过现有的成员资格结构。这样您就可以使用开发人员已经习惯的一种数据库结构,无论是用于数据访问、报告还是其他目的。创建一个继承自 MembershipProvider 的类。检查一下:http://msdn.microsoft.com/en-us/library/f1kyba5e.aspxhttp://www.devx.com/asp/Article/29256/0/page/3 .

您只需要实现您实际需要的功能。

关于c# - 将用户从自定义表迁移到 ASP.NET 成员表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com