自定义成员身份提供程序时如何管理ProviderUserKey

本文关键字:何管理 管理 ProviderUserKey 身份 成员 程序 自定义 | 更新日期: 2023-09-27 18:19:51

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

自定义成员身份提供程序时如何管理ProviderUserKey

根据虚拟属性,应该是

public Object ProviderUserKey { get; set; }

对于您的第一个问题:

我想知道我必须为我的我的用户模型中的ProviderUserKey?

来自MemorshipUser类的MSDN页面:

标识符的类型取决于MembershipProvider或MembershipUser。在SqlMembershipProvider的情况下ProviderUserKey可以强制转换为Guid,因为SqlMembershipProvider将用户标识符存储为UniqueIdentifier。

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

第二个问题:

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

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