.net 会员的升级路径
Upgrade path for .net Membership
我支持带有 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,但我更愿意在进入兔子洞之前听取建议。
谢谢!
无忧无虑?您是说简单路径(或)可扩展路径吗?
设计更多的是一种意见,而不是 objective。它主要基于人们对问题陈述的了解。根据您的建议,我会推荐以下内容。
- 将所有与会员相关的代码分离到一个库中(如果尚未完成)
- 现在编写接口,从项目中的会员相关代码中抽象出实际的身份验证机制。这样,您的代码就不需要针对任何与身份验证相关的机制进行更改。这也不需要更改数据库架构。
- 现在要进行真正的身份验证,请使用 Auth0 (https://auth0.com/blog/add-auth-to-native-desktop-csharp-apps-with-jwt/) 之类的东西,这样的东西很容易实现。但我不知道您的项目是否是商业项目/许可如何运作。我知道 auth0 有一个免费版本,但我请求你检查一下。
绝对不是简单的升级。这是我们在案例中所做的。
创建了 ASP.NET 身份 table。我们把它做成类似于 Membershipusers table,后来迁移了整个 table.
已添加ApplicationUser, ApplicationRole,ApplicationUserManager , ApplicationSignInManager, ApplicationDbContext
为定义在 Startup.cs 的 DI 实现 Autofac。
在 Login/Signup 控制器上工作 类。
最终将整个会员数据库迁移到新的 aspnetusers table。
应用程序最初是使用 NOPCommerce(asp.net 网络表单)设计的,将 Membership.GetUser().ProviderUserKey.ToString()
替换为 User.Identity.GetUserId()
是一种解脱
我支持带有 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,但我更愿意在进入兔子洞之前听取建议。
谢谢!
无忧无虑?您是说简单路径(或)可扩展路径吗?
设计更多的是一种意见,而不是 objective。它主要基于人们对问题陈述的了解。根据您的建议,我会推荐以下内容。
- 将所有与会员相关的代码分离到一个库中(如果尚未完成)
- 现在编写接口,从项目中的会员相关代码中抽象出实际的身份验证机制。这样,您的代码就不需要针对任何与身份验证相关的机制进行更改。这也不需要更改数据库架构。
- 现在要进行真正的身份验证,请使用 Auth0 (https://auth0.com/blog/add-auth-to-native-desktop-csharp-apps-with-jwt/) 之类的东西,这样的东西很容易实现。但我不知道您的项目是否是商业项目/许可如何运作。我知道 auth0 有一个免费版本,但我请求你检查一下。
绝对不是简单的升级。这是我们在案例中所做的。
创建了 ASP.NET 身份 table。我们把它做成类似于 Membershipusers table,后来迁移了整个 table.
已添加
ApplicationUser, ApplicationRole,ApplicationUserManager , ApplicationSignInManager, ApplicationDbContext
为定义在 Startup.cs 的 DI 实现 Autofac。
在 Login/Signup 控制器上工作 类。
最终将整个会员数据库迁移到新的 aspnetusers table。
应用程序最初是使用 NOPCommerce(asp.net 网络表单)设计的,将 Membership.GetUser().ProviderUserKey.ToString()
替换为 User.Identity.GetUserId()