2012-01-10 27 views
2

我使用自定义会员供应商重写了asp.net会员供应商。我想知道我的用户模型中为我的ProviderUserKey设置了什么样的类型?如何在定制会员供应商时管理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

@ jadarnel27:是的,非常感谢。 – Bronzato 2012-02-23 12:22:26

回答

1

根据虚拟财产,应该是

public Object ProviderUserKey { get; set; } 

关于第一个问题:

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

MSDN page上MemershipUser类:

的类型标识符的依赖于的MembershipProvider或 的MembershipUser。在SqlMembershipProvider的情况下,由于SqlMembershipProvider 将用户标识符存储为UniqueIdentifier,所以ProviderUserKey可以转换为Guid。

所以,这取决于你如何存储用户标识符(作为一个int/guid/varchar等)。您将其输入为Object,但根据您的实施将其转换为适当的数据类型。

而且你的第二个问题:

我不知道如何创建 新用户时生成一个新的ProviderUserKey值。任何想法?

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

+0

我不明白我该如何为这个ProviderUserKey生成我自己的Guid,请你详细说明一下吗? – 2012-04-08 08:11:29

+0

@MoranMonovich它会像'System.Guid g = System.Guid.NewGuid();'。更多信息可以在[this Stack Overflow post](http://stackoverflow.com/questions/2344098/c-sharp-how-to-create-a-guid-value)和[documentation](http:/ /msdn.microsoft.com/en-us/library/system.guid.newguid.aspx)。 – jadarnel27 2012-04-08 21:49:59

+0

谢谢,我使用的方法CreateUser()可以接受三个参数,并自动创建Guid。 – 2012-04-09 04:41:23