ASP.. NET Identity v2.0 IdentityUser属性丢失



我一直在使用ASP。. NET identity 1.0在我之前的应用程序中,通过以下简单的教程,我成功地在我的用户类中实现了自定义属性:

public class CustomUser : IdentityUser
{
    public string ContactName { get; set; }
    public string CompanyName { get; set; }
    public string Address { get; set; }
    public string Postcode { get; set; }
    public string Country { get; set; }
    public string Phone { get; set; }
    public string Fax { get; set; }
    public string Email { get; set; }
    public bool Subscription { get; set; }
}

所以然后在AccountController注册方法我可以映射我的ViewModel到CustomUser和调用UserManager。方法,传递我的用户名和密码字符串,并在系统中注册新用户。

当我尝试在Identity v2.0中做同样的事情时,这是不可能的了。我注意到IdentityUser没有UserName, Claims, Id和以前可用的其他属性。另外,我注意到Email字段必须在新版本的IdentityUser的某个地方声明,因为我不允许在我的自定义用户中设置它。

我相信所有这些属性一定以某种方式被抽象了,但不知道是如何抽象的。我的问题是我如何设置我的CustomUser的用户名和电子邮件属性发送它注册现在?

我最近一直在研究这个问题,偶然发现了这个博客,它很好,但更重要的是有一个链接,可以安装一个完整实现的示例…

http://blogs.msdn.com/b/webdev/archive/2014/03/20/test宣布- rtm的asp -网-认同- 2 - 0 - 0. - aspx

基本上你是对的,有一个抽象允许改变类型的关键,但电子邮件和用户名等仍然在那里,只是在较低的水平。如果您继续查看继承对象的定义,就会找到它们。在遇到这个问题后,我已经实现了一个整数键…

Identity更改GUID为int

这是他们在Identity 2.0中的位置

namespace Microsoft.AspNet.Identity.EntityFramework
{
  public class IdentityUser<TKey, TLogin, TRole, TClaim> : IUser<TKey>
    where TLogin : Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin<TKey>
    where TRole : Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole<TKey>
    where TClaim : Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim<TKey>
  {
    // Summary:
    //     Constructor
    public IdentityUser();
    // Summary:
    //     Used to record failures for the purposes of lockout
    public virtual int AccessFailedCount { get; set; }
    //
    // Summary:
    //     Navigation property for user claims
    public virtual ICollection<TClaim> Claims { get; }
    //
    // Summary:
    //     Email
    public virtual string Email { get; set; }
    //
    // Summary:
    //     True if the email is confirmed, default is false
    public virtual bool EmailConfirmed { get; set; }
    //
    // Summary:
    //     User ID (Primary Key)
    public virtual TKey Id { get; set; }
    //
    // Summary:
    //     Is lockout enabled for this user
    public virtual bool LockoutEnabled { get; set; }
    //
    // Summary:
    //     DateTime in UTC when lockout ends, any time in the past is considered not
    //     locked out.
    public virtual DateTime? LockoutEndDateUtc { get; set; }
    //
    // Summary:
    //     Navigation property for user logins
    public virtual ICollection<TLogin> Logins { get; }
    //
    // Summary:
    //     The salted/hashed form of the user password
    public virtual string PasswordHash { get; set; }
    //
    // Summary:
    //     PhoneNumber for the user
    public virtual string PhoneNumber { get; set; }
    //
    // Summary:
    //     True if the phone number is confirmed, default is false
    public virtual bool PhoneNumberConfirmed { get; set; }
    //
    // Summary:
    //     Navigation property for user roles
    public virtual ICollection<TRole> Roles { get; }
    //
    // Summary:
    //     A random value that should change whenever a users credentials have changed
    //     (password changed, login removed)
    public virtual string SecurityStamp { get; set; }
    //
    // Summary:
    //     Is two factor enabled for the user
    public virtual bool TwoFactorEnabled { get; set; }
    //
    // Summary:
    //     User name
    public virtual string UserName { get; set; }
  }
}

相关内容

  • 没有找到相关文章

最新更新