自定义成员资格提供程序时如何管理ProviderUserKey

时间:2012-01-10 17:10:37

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

我正在使用我的自定义成员资格提供程序覆盖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值。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

根据虚拟财产,它应该是

public Object ProviderUserKey { get; set; }

关于你的第一个问题:

  

我想知道我必须为我设置哪种类型   我的用户模型中的ProviderUserKey?

来自MemershipUser课程的MSDN page

  

标识符的类型取决于MembershipProvider或   的MembershipUser 即可。在SqlMembershipProvider的情况下,   自SqlMembershipProvider以来,ProviderUserKey可以作为Guid进行转换   将用户标识符存储为UniqueIdentifier。

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

你的第二个问题:

  

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

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