ASP.NET 身份或 ASP.NET 成员资格



我有一个全新的MVC5项目,我需要用户管理。当我创建一个新项目时,Visual Studio 会为我完成并添加大量代码,以便我可以利用身份验证和授权的概念。

问:ASP.NET Identity 是否是 Web 应用程序之外的用户管理的"好"解决方案?我想有一天将移动应用程序添加到组合中,我希望将相同的 BLL 代码库用于 Web 应用程序和移动应用程序。

此外,我对 ASP.NET 身份的理解非常有限,因为它在幕后使用HttpContext来"连接"身份验证和授权。因此,我可以在控制器操作(如 [Authorize])上使用属性来继承授权行为。我真的很喜欢这个功能,但我担心这种方法不一定适用于移动应用程序,因为没有使用HttpContext

这里要注意的一件事是,我也不喜欢在我的 MVC 项目中直接使用 DBContextIdentityConfig.cs 类。我一直在摆弄使用 n 层方法,但我似乎无法成功地将身份验证/身份验证部分分解为适当的 BLL/DAL 架构模型。

所以,我想我总共有两个问题:

  1. ASP.NET Identity 是 Web 和移动应用程序的"好"身份验证/身份验证选择吗

  2. 如果"是",如何将 RoleManager/UserManager 类撕成 BLL 并让它们拉取利用数据访问层?

1)是的,如果您打算稍后构建移动应用程序,请务必进行 ASP.Net 身份2身份验证。查看这篇文章以了解有关 ASP.Net 身份2的更多信息。

我最终为我的 webapi 项目使用了 ASP.Net 身份 2 OAuth 身份验证,该项目也旨在迎合移动应用程序。没有必要担心Httpcontext。您需要在客户端(无论是 Web 应用程序还是移动应用程序)中跟踪的只是 OAuth 发布的access_token。

2)是的。ASP.Net Identity 2非常灵活,因为它甚至允许您使用另一个数据库引擎(如MySQL)来存储用户/角色信息。看看这个。我将所有自定义的 OWIN 特定表放在不同的 BLL 中,并将其插入到 WebAPI 项目中。两者都通过接口链接,因为 DAL 驻留在不同的项目中。将它与出色的DI框架(如StructureMap/Ninject/SimpleInjector)结合使用,您不必担心DbContext会弄乱您的架构模型。

相关内容

  • 没有找到相关文章

最新更新