我目前正在使用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();
}
}
我很难实现如何在其他网页中使用这些新的个人资料信息?
有人可以给我一些示例代码吗?
答案 0 :(得分:1)
可以从User.Identity.GetUserId()获取登录用户的ID。在任何页面上,您都可以使用UserManager获取用户对象
var user = UserManager.FindById(User.Identity.GetUserId());
然后,您可以访问用户个人资料
user.FirstName; user.Age;
希望这能回答你的问题