【问题标题】:how to update the Identity User?如何更新身份用户?
【发布时间】:2016-06-03 12:12:45
【问题描述】:

我正在使用代码优先迁移在 MVC 5 中开发一个网站。我想在默认身份中添加自定义属性来更新用户数据,但我未能更新 AspNetUsers 表,尽管我也添加了迁移和更新数据库,但结果是一样的。我的代码是 在 applicationUser 中,我添加了另外三个属性。

public class ApplicationUser : IdentityUser
{
    public string Name { get; set; }
    public string MobileNo { get; set; }
    public string Address { get; set; }

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {


        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        return userIdentity;
    }

}

然后我更新了 RegisterViewModel

[Required]
    [Display(Name ="Name")]
    public string Name { get; set; }

    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    public string Email { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }

    [Required]
    [Display(Name = "Mobile Number")]
    public string MobileNo { get; set; }

    [Required]
    [Display(Name = "Address")]
    public string Address { get; set; }

注册视图是

<h4>Create a new account.</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })

<div class="form-group">
    @Html.LabelFor(m => m.Name, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
    </div>
</div>

<div class="form-group">
    @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
    </div>
</div>
<div class="form-group">
    @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
    </div>
</div>
<div class="form-group">
    @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
    </div>
</div>

<div class="form-group">
    @Html.LabelFor(m => m.MobileNo, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.TextBoxFor(m => m.MobileNo, new { @class = "form-control" })
    </div>
</div>
<div class="form-group">
    @Html.LabelFor(m => m.Address, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.TextBoxFor(m => m.Address, new { @class = "form-control" })
    </div>
</div>
<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" class="btn btn-default" value="Register" />
    </div>
</div>

在控制台管理器中添加迁移和更新数据库后,我无法在 AspNetUsers 表中创建列,当我使用 -Verbose 标志时,错误消息为 “找不到对象“AspNetUsers”,因为它不存在或您没有权限。” 我无法理解如何解决问题。请告诉我如何处理这个问题。谢谢

【问题讨论】:

    标签: asp.net-mvc-5


    【解决方案1】:

    检查您是否可以真正连接到数据库,因为连接失败可能会阻止您更新数据库表。我在我的代码中使用了这个连接字符串:

    <connectionStrings> <add name="CONNECTIONSTRING_NAME" connectionString="Data Source(local); Initial Catalog=YOUR_DATABASE_NAME;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 2018-07-30
      相关资源
      最近更新 更多