【问题标题】:Upgrade path for .net Membership.net 会员资格的升级路径
【发布时间】:2020-04-14 02:05:43
【问题描述】:

我支持带有 SQL 后端的旧版 webforms 应用程序,并且一直在尝试逐步升级它 我已经升级到 .NET 4.6(托管服务提供商允许的最高版本),添加了一些 jQuery、EF 6 的优点,进行了总体重构并尝试先从数据库优先 edmx 切换到代码,我的下一个计划是开始使用某种类型创建新功能像Vue这样的前端库。 但是……

我目前的问题是会员资格。 它在整个代码和语句中使用,如

new Guid(Membership.GetUser().ProviderUserKey.ToString())

实在是太多了,无法承受。

数据库有 10 个表和 9 个视图。

vw_aspnet_Applications
vw_aspnet_MembershipUsers
vw_aspnet_Profiles
etc..

应用程序使用它进行身份验证并跟踪哪个用户在做什么。

有没有办法轻松地将其升级为现代解决方案? 我可以把精力从我自己的时间里拿出来,但我更喜欢一个不过分的解决方案。 用户数量可能少于 20,因此替代方案不必很复杂。 它只需要支持 Membership 正在做的大部分事情。

我在自己的时间里玩过 Auth0,但它似乎不适合这个。 还有 MS Identity,但我更愿意在进入兔子洞之前听取建议。

谢谢!

【问题讨论】:

  • 没有简单的升级。您将不得不研究身份解决方案并选择一个,然后找出迁移到它所需的内容。迁移身份解决方案对于 Stack Overflow 来说是一个过于宽泛的问题。
  • 好的 - 是否有比其他解决方案更容易实施的解决方案(例如支持会员资格或可以从中迁移)?
  • 你已经在你的问题中问过这个问题,我已经回答了你。
  • 老实说,关于堆栈溢出问题的回答过于宽泛,可能缺少从哪里开始。不过还是谢谢
  • 您可以获取源代码(现在全部公开)并将其移植/添加(例如使用 .NET 核心)到您的解决方案中:github.com/microsoft/referencesource/blob/master/System.Web/…

标签: asp.net webforms


【解决方案1】:

绝对不是简单的升级。这是我们在案例中所做的。

  • 已创建 ASP.NET 标识表。我们使它类似于 Membershipusers 表,后来迁移了整个表。

  • 已添加ApplicationUser, ApplicationRole,ApplicationUserManager , ApplicationSignInManager, ApplicationDbContext

  • 为 Startup.cs 中定义的 DI 实现 Autofac。

  • 从事登录/注册控制器类。

  • 最终将整个 Membership 数据库迁移到新的 aspnetusers 表中。

应用程序最初是使用 NOPCommerce (asp.net webforms) 设计的,将 Membership.GetUser().ProviderUserKey.ToString() 替换为 User.Identity.GetUserId() 是一种解脱

【讨论】:

    【解决方案2】:

    无忧无虑?你的意思是简单的路径(或)可扩展的路径?

    设计更多的是一种观点,而不是客观的。它主要基于人们对问题陈述的了解。根据您的建议,我会推荐以下内容。

    1. 将所有与成员资格相关的代码分离到一个库中(如果尚未完成)
    2. 现在编写接口,从项目中的成员船相关代码中抽象出实际的身份验证机制。这样,您的代码就不需要针对任何与身份验证相关的机制进行更改。这也不需要更改数据库模式。
    3. 现在,对于真正的身份验证,使用 Auth0 (https://auth0.com/blog/add-auth-to-native-desktop-csharp-apps-with-jwt/) 之类的东西将很容易实现。但我不知道您的项目是否是商业项目/许可将如何运作。我知道 auth0 有一个免费版本,但我请求您检查一下。

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      相关资源
      最近更新 更多