Jat*_*iya 5 authentication asp.net-mvc authorization asp.net-membership visual-studio
我是ASP.NET成员资格的新手。我想在ASP.NET MVC项目中实现ASP.NET成员资格。我不确定是否可能。
每当我们那时要创建MVC应用程序时,我们都会找到更改身份验证的选项(无身份验证,身份身份验证,组织等)。我选择了身份验证,并在我的应用程序中获得了那些表。看附件。
但是我不想要ASP.NET身份表和功能。
我想要附加 ASP.NET成员资格表和功能(用户CRUD操作,分配角色,更改用户密码等)。
我已经找到了在SQL Server中创建ASP.NET成员资格表的方法。
但是您还记得我们创建带有身份的MVC应用程序时,它们会提供内置的注册和登录功能(无需为此编写代码),是的,我也希望成为ASP.NET成员。
您的答案将不胜感激!:)
提前致谢 :)
如果您确实想使用 ASP.NET 成员资格,最简单的方法是使用 ASP.NET 内置功能,因为您可以使用旧的 ASP:NET 作为 ASP.NET MVC 应用程序的一部分。
另一种方法是自己编写这些管理页面。意思是编写控制器和视图。这种方法还有更多的陷阱。
事务陷阱: 如果您想将注册与对数据库另一部分的另一个读/写操作结合起来,您可能希望使用事务来保持数据库一致。但是您不能将 ASP.NET 成员资格函数与其他代码(ADO.NET、Linq-2-SQL 或实体框架)结合起来,因为数据库事务需要在一个数据库连接中进行。内置 ASP.NET 成员资格功能使用 web.config 中的连接字符串提供的自定义连接。因此,事务是在两个连接(ASP.NET 成员资格连接和您的连接)上执行的,并且除非您为分布式事务配置服务器,否则它确实可以工作。托管提供商有时不支持这一点。
最后,我通过从头开始重写成员资格提供程序并调用 ASP.NET 成员资格过程解决了这个问题。它解决了两个连接和分布式事务的问题。
实体框架陷阱: 您可能会在应用程序中使用实体框架。您可能需要申请某些业务层的成员资格。EntityFramework不支持IDBConnection或DBConnection,但您需要提供EntityConnection。这意味着实体框架使用与 ADO.NET 不同类型的连接。从实体框架调用 ASP.NET 成员资格存储过程不会为您提供返回代码。我通过在 SQL Server 中为每个 ASP.NET 成员资格存储过程创建包装器解决了这个问题。
因此,最终将 ASP.NET 成员资格集成到带有实体框架的现代 ASP.NET MVC 应用程序中确实需要大量工作。我不会为新项目这样做。对于新项目,请尝试使用OWIN。
| 归档时间: |
|
| 查看次数: |
3432 次 |
| 最近记录: |