使用asp.net标识和WEB表单消费扩展属性(VS2013.3)

本文关键字:属性 扩展 VS2013 net asp 标识 表单 WEB 使用 | 更新日期: 2023-09-27 18:18:24

我目前使用VS 2013.3自学ASP.net,并使用Webforms实现ASP.net身份(代码优先)。

我已经遵循了一些MVC教程,看看我是否可以学习这种方式,但没有太多的成功。

我想在用户配置文件中添加额外的属性,如姓名和年龄。

所以我创建了一个类Application user,它继承了IdentityUser,

public class ApplicationUser : IdentityUser
{
    public String FirstName { get; set; }
    public String Age{ get; set; }
}

然后修改数据库上下文,使用这个新用户

public ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
 ...
}

到目前为止一切顺利-我可以直接用代码注册新用户

public partial class Register : Page
{
    EPMSContext db = new EPMSContext();
    protected void CreateUser_Click(object sender, EventArgs e)
    {
        var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
        var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text, Name = Name.Text, Age=Age.Text,  };
        IdentityResult result = manager.Create(user, Password.Text);
        if (result.Succeeded)
        {
            IdentityHelper.SignIn(manager, user, isPersistent: false);
            IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
        }
        else 
        {
            ErrorMessage.Text = result.Errors.FirstOrDefault();
        }
    }

我正在努力实现我如何在其他页面中使用这个新的配置文件信息?

有人能给我点一些示例代码吗?

使用asp.net标识和WEB表单消费扩展属性(VS2013.3)

登录用户的Id可以从user . identity . getuserid()中获得。在任何页面上,您都可以将此与UserManager一起使用以获取用户对象

          var user = UserManager.FindById(User.Identity.GetUserId());

然后您可以访问用户配置文件

          user.FirstName; user.Age;

希望这能回答你的问题