gpt4 book ai didi

asp.net - 您将如何将 Entity Framework (1.0) 与 ASP.Net Membership 一起使用?

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

我正在尝试为使用 ASP.Net 成员身份进行用户身份验证的应用程序设计实体模型。在我创建的大多数数据库模式中,记录通常最终通过 aspnet_users 表上的 UserId 字段与用户相关。过去这对我来说效果很好,但现在我正在使用 EF,我在弄清楚如何从实体中引用用户时遇到了一些概念问题。

例如,假设我们有一个包含“postedBy”属性的“post”实体。我希望能够使用 post.user.username 之类的内容获取创建此帖子的用户的用户名,但我对基于 aspnet_user 表创建实体持谨慎态度,因为害怕创建一个让我们在对数据库进行更改时,我绕过了 Membership 类。

我考虑过将 post.userId 字段保留为 guid,然后要求任何需要知道用户名的代码使用该 guid 从 Membership 类中获取用户,但这似乎“不合时宜”。

有人对与成员资格集成的实体模型设计有任何建议吗?我会合理地使用“只读”用户实体。

最佳答案

我的建议是:“不要”。

让我更具体一点。

使用 UserId 作为映射的外键通常不会将您的实体模型与 ASP.NET Membership 关联,而是与 SQL Membership Provider 通常关联。如果您想使用域身份验证或 OpenID 会发生什么?

不要误会我的意思:99.9% 的情况下,将数据库引用与外键绑定(bind)在一起是正确的。哎呀,你甚至可以在这里做,但不要将它映射到你的实体模型中。您需要在成员(member)提供者和您自己的数据之间保持逻辑隔离墙。您通过 EF 访问您的数据。您通过成员(member) API 访问成员(member)数据。他们碰巧住在同一个数据库中,因为您碰巧使用的是 SQL 成员资格提供程序,这一事实是一个实现细节。

更新:我在 a blog post 中扩展了这个想法.

关于asp.net - 您将如何将 Entity Framework (1.0) 与 ASP.Net Membership 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348173/

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