无需转到.Net 4.5中的数据库即可获取ApplicationUser对象

时间:2018-03-28 07:49:23

标签: c# asp.net authentication webforms

我有一个基于Webforms的.Net 4.5 ASP.Net网站。本网站使用OWIN和ASP.Net Identity的最新安全框架登录用户。

用户登录后,我可以在Chrome开发者工具应用程序标签中看到身份验证Cookie。我需要使用此身份验证cookie在aspx页面的代码隐藏中获取 ApplicationUser 对象。我尝试了一些代码,但它通过从数据库中的一些表读取来创建ApplicationUser对象。

问题

如何在不使数据库访问的情况下,在aspx页面的代码隐藏中为当前登录的用户获取 ApplicationUser 对象?

我尝试过的代码

UserManager manager = new UserManager();
var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo();
ApplicationUser appUser = manager.FindByName("abc xyz");//database call 

代码我已经习惯登录用户

///login the user using OWIN framework (not forms authentication)
var manager = new UserManager();
ApplicationUser appUser = new ApplicationUser();
appUser.Email = user.Email;
appUser.UserName = user.DisplayName;
appUser.EmailConfirmed = true;
appUser.Id = user.UserId;
appUser.PicUrl = user.Userpic;


IdentityHelper.SignIn(manager, appUser, false);//creates the asp.net identity cookie
IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);//redirects to the protected url

0 个答案:

没有答案