【问题标题】:Lost on membership provider迷失在会员提供商处
【发布时间】:2011-09-29 15:58:59
【问题描述】:

我对使用 SQLMembershipProvider 与我自己的自定义提供程序的适当时间感到困惑。我正在构建一个用户可以创建帐户的系统;然后在我们的系统中创建对象。当用户登录时,他应该能够查看和编辑他创建的对象。

现在,我可以通过使用 SQLMembershipProvider 来做到这一点吗?我的理解是 SQLMembershipProvider 将用户存储在自己的数据库中。如果是这种情况,我如何将我的对象与创建它们的用户相关联?我已经阅读了有关 Profile Properties 系统的信息,但它似乎不起作用,因为它只是向 .Net users 对象添加了额外的信息,例如邮政编码。

我的对象表会是什么样子;说明哪个用户创建了对象的列会是什么?

或者,我是否只需要创建一个自定义 MembershipProvider 将用户存储在我自己的数据库中?

【问题讨论】:

    标签: .net asp.net-membership membership-provider sqlmembershipprovider


    【解决方案1】:

    您只需要让您的对象表有一个 UserId 列,该列是 SQLMembershipProvider 创建的 User 表的外键。

    【讨论】:

    • 我在另一个问题中读到,您无法轻松地从会员 API 中获取 userId 字段:stackoverflow.com/questions/2530113/…
    • 不知道他为什么会遇到问题。我已经多次这样做了。
    • 如何获取当前登录用户的UserId?我在 MembershipUser 类型上看不到任何 UserId 属性。我不想使用用户名属性,因为用户名可以更改。
    • 好的,我从 ProviderKey 得到它并将其转换为 Guid...但这似乎不是一个理想的解决方案,因为现在如果我切换到 SQL 以外的提供程序,代码会中断它会尝试演员表。
    • @GendoIkari:如果您切换到不使用 GUID 作为其主键的提供程序,您将遇到比代码破坏更大的问题。你所有的关系也会破裂。
    猜你喜欢
    • 2011-05-27
    • 2012-03-23
    • 2011-10-08
    • 1970-01-01
    • 2013-06-03
    • 2012-05-25
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多