- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为使用 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/
情况是这样的: 我们有几个 (19) 个站点当前配置为使用不同的应用程序名称共享单个 ASP 成员(member)数据库,例如: 我的问题是,如果在 web.con
正如我在 VS2012 调试器中看到的,方法 Membership.GetUser() 首先尝试创建表“应用程序”(使用 CREATE TABLE NonQuery),得到表已经存在的异常,然后为我返
我目前正在用 .Net 重写整个网站。当前网站使用foxpro编写,使用自定义逻辑、验证规则和Sql server表来存储和验证用户。 我想使用 Membership Provider,但我有一个主要
我的系统有不同的用户, super 管理员、管理员、成员、匿名用户。 在某些页面中,我只希望管理员用户登录。如果成员登录,我不想将它们重定向到目标 URL。 如何停止重定向? 最佳答案 我不记得 na
我有一个 SQL 脚本,可以在我的数据库中创建用户。它使用.Net 成员资格存储过程。 此时一切正常。 唯一的问题是密码保存为明文。我应该在此处更改什么以使其加盐/加密(不确定此处使用什么术语) GO
如何在 ASP.NET Web 应用程序项目中不使用 Membership.GetUser(username) 的情况下访问 ASP.NET Membership 中的 UserId? UserId
我正在开发一个使用 Facebook 的网站。现在,为了管理用户,我想到了使用 MembershipProvider 并选择开发自定义成员(member)提供程序。我的问题是我的数据库架构与标准成员架
我正在尝试编写一个简单的 Gui 来生成随 secret 码。我尝试使用的代码是: 使用 System.Web.Security; Password_txtBx.Text = Membership.G
测试集合中是否存在以另一个元组开头的元组的 pythonic 方法是什么?实际上,我真的在匹配索引之后,但我可能可以从测试示例中找出 例如: c = ((0,1),(2,3)) # (0,) shou
为什么 memcached 中存在硬编码块限制(压缩后 .5 兆) ?有没有人重新编译他们的?我知道我不应该发送这样的大块,但是这些超重的块不时发生在我身上并造成严重破坏。 最佳答案 这个问题曾经在o
我正在将代码移出 App_Code进入类库。 我使用 Membership.CreateUser 以编程方式创建用户. 在无法访问我在 web.config 中配置的成员资格提供程序的情况下,如何在我
我的 web.config 允许最多 10 次密码尝试失败。但我想在 5 次失败后添加验证码。 我如何获得成员(member)资格甚至自定义函数的失败尝试次数? 最佳答案 此资源在这里 http://
我正在尝试完成一个程序来帮助我在类里面学习 Java 之前学习它。但我在尝试向俱乐部添加成员(member)、打印出来然后计算成员(member)数量时遇到了困难。将基础知识添加到代码中后,我不知道从
我有这个代码: MembershipUser user = Membership.GetUser(model.UserName); if (user != null) user.IsAppro
Membership.ApplicationName 是一个静态字符串。 我的问题是,如果我想更改此值以查询同一数据库上另一个 应用程序的成员资格,则更改是永久性的,这意味着当前站点的应用程序名称现已
我正在使用表单例份验证,我想将某些页面限制为某些角色。现在每个人都可以在登录后访问整个应用程序。 但我想将某些页面限制为某些角色。例如,“查看日志”页面。 我认为我的 web.config 文件应该如
我正在使用 System.Web.Sercurity.Membership 方法来处理我们网络服务的用户。在测试期间我对它非常满意,因为我们的数据库和 Web 服务驻留在同一台服务器上。 当数据库和
Membership.DeleteUser() 设法删除我要删除的用户的用户配置文件。为什么它不同时删除存储在 webpages_membership 中的信息。 我目前没有使用角色,所以请记住这一点
我的应用程序中的许多地方都需要 GUID (UserId)。目前我正在调用 Membership.GetUser() 来获取 UserId。此方法是进行数据库调用还是缓存详细信息? 如果它进行数据库调
当我使用 Membership.DeleteUser(userName, false) 时,没有任何反应。但是当我使用 Membership.DeleteUser(userName, true) 或
我是一名优秀的程序员,十分优秀!