gpt4 book ai didi

asp.net-mvc - 如何在 MVC 项目中实现 ASP.Net 成员身份?

转载 作者:行者123 更新时间:2023-12-04 21:11:52 25 4
gpt4 key购买 nike

我是 ASP.NET 成员(member)的新手。我想在 ASP.NET MVC 项目中实现 ASP.NET Membership。我不确定这是否可能。

每当我们要创建 MVC 应用程序时,我们都会找到更改身份验证的选项(无身份验证、身份验证、组织等)。我选择了身份验证并在我的应用程序中获取这些表。 看附上。

enter image description here

但我不想要 ASP.NET Identity 表和功能。

我想要 ASP.NET Membership 表和功能(用户 CRUD 操作、分配角色、更改用户密码等)看附件 .

enter image description here

我找到了在 SQL Server 中创建 ASP.NET Membership 表的方法。

  • 转到目录 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 单击
  • aspnet_regsql.exe。您将看到以下屏幕。

  • 但是您是否记得每当我们创建带有身份的 MVC 应用程序时,它们就会提供内置的注册和登录功能(无需为此编写代码)是的,我也想要 ASP.NET 成员身份。

    您的回答将值得赞赏! :)

    提前致谢 :)

    最佳答案

    如果您真的想使用 ASP.NET 成员资格,最简单的方法是使用 ASP.NET 内置功能,因为您可以使用旧的 ASP:NET 作为 ASP.NET MVC 应用程序的一部分。

    另一种方法是自己编写这些管理页面。这意味着编写 Controller 和 View 。这种方法有更多的陷阱。

    交易陷阱:
    如果您想将注册与另一个读/写操作结合到数据库的另一部分,您可能希望使用事务来保持数据库的一致性。但是您不能将 ASP.NET 成员资格函数与其他代码(ADO.NET、Linq-2-SQL 或 Entity Framework )结合使用,因为数据库事务需要在一个数据库连接中进行。在 ASP.NET Membership 函数中构建使用由 web.config 中的连接字符串提供的自定义连接。因此,事务是在两个连接(ASP.NET 成员身份连接和您的连接)上执行的,除非您为分布式事务配置服务器,否则它确实可以工作。这有时不受托管服务提供商的支持。

    最后,我通过调用 ASP.NET 成员资格程序从头开始重写成员资格提供程序解决了这个问题。解决了二次连接和分布式事务的问题。

    Entity Framework 陷阱:
    您可能要在应用程序中使用 Entity Framework 。您可能需要申请某些业务层的成员资格。 EntityFramework 不支持 IDBConnection 或 DBConnection,但需要提供 EntityConnection。这意味着 Entity Framework 使用与 ADO.NET 不同的连接类型。并且从 Entity Framework 调用 ASP.NET 成员资格存储过程不会为您提供返回代码。我通过 creating wrapper in SQL server for every ASP.NET membership stored procedure 解决了这个问题.

    因此,最终将 ASP.NET 成员资格集成到具有 Entity Framework 的现代 ASP.NET MVC 应用程序中确实需要大量工作。我不会为新项目这样做。对于新项目尝试使用 OWIN反而。

    关于asp.net-mvc - 如何在 MVC 项目中实现 ASP.Net 成员身份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924232/

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