【问题标题】:How to manage ProviderUserKey when customizing Membership provider自定义 Membership provider 时如何管理 ProviderUserKey
【发布时间】:2012-01-10 17:10:37
【问题描述】:

我正在用我的自定义成员提供程序覆盖 asp.net 成员提供程序。我想知道在我的用户模型中我必须为我的 ProviderUserKey 设置什么样的类型?

我试过了:

public class User
{
    [Key]
    public ????? ProviderUserKey { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public string Email { get; set; }
    public string PasswordQuestion { get; set; }
    ...
}

我不知道在创建新用户时如何生成新的 ProviderUserKey 值。有什么想法吗?

【问题讨论】:

    标签: c# asp.net asp.net-membership


    【解决方案1】:

    根据虚拟属性应该是

    public Object ProviderUserKey { get; set; }
    

    第一个问题:

    我想知道我必须为我设置什么样的类型 我的用户模型中的 ProviderUserKey?

    来自 MemershipUser 类的MSDN page

    标识符的类型取决于 MembershipProvider 或 会员用户。对于 SqlMembershipProvider, ProviderUserKey 可以转换为 Guid,因为 SqlMembershipProvider 将用户标识符存储为 UniqueIdentifier。

    因此,这取决于您如何存储用户标识符(如 int / guid / varchar 等)。您将其键入为 Object,但根据您的实现将其转换为正确的数据类型。

    还有你的第二个问题:

    创建时不知道如何生成新的ProviderUserKey值 一个新用户。有什么想法吗?

    当您创建新用户并将它们添加到您存储它们的任何内容(关系数据库、XML 文件等)中时,检索该过程生成的唯一标识符。如果您此时没有生成唯一的用户标识符...您需要是 =)

    【讨论】:

    • 我不明白如何为这个 ProviderUserKey 生成我自己的 Guid,你能详细说明一下吗?
    • @MoranMonovich 类似于System.Guid g = System.Guid.NewGuid();。更多信息可以在this Stack Overflow postthe documentation找到。
    • 谢谢,我使用了 CreateUser() 可以接受三个参数并且自动创建 Guid 的方法。
    猜你喜欢
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多