使用aspnet标识和WEB FORMS(VS2013.3)使用扩展属性

时间:2014-08-17 02:31:24

标签: c# asp.net webforms asp.net-identity

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

我已经关注了一些MVC教程,看看我是否可以通过这种方式学习,但没有取得多大成功。

我想在用户个人资料中添加名称和年龄等其他属性。

所以我创建了一个继承自IdentityUser的类Application应用程序,

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();
        }
    }

我很难实现如何在其他网页中使用这些新的个人资料信息?

有人可以给我一些示例代码吗?

1 个答案:

答案 0 :(得分:1)

可以从User.Identity.GetUserId()获取登录用户的ID。在任何页面上,您都可以使用UserManager获取用户对象

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

然后,您可以访问用户个人资料

          user.FirstName; user.Age;

希望这能回答你的问题