我试图从MVC4中的UserProfile中获取一个自定义属性,该属性使用SimpleMembershipProvider。 我的表格如下:
public class UserProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { get; set; } //Added to round out requirements for site user profile public string FirstName { get; set; } public string LastName { get; set; } public string Site { get; set; } }当我尝试在登录时的会话变量中获取我感兴趣的userprofile项目FirstName
public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { var context = new UsersContext(); var curuser = context.UserProfiles.First(p => p.UserName == User.Identity.Name); Session["FName"] = curuser.FirstName; return RedirectToLocal(returnUrl); } // If we got this far, something failed, redisplay form ModelState.AddModelError("", "The user name or password provided is incorrect."); return View(model); }我收到一个错误:Sequence没有包含我的var curuser行的元素。 如果我用model.Username替换User.Identity.Name,它可以正常工作。 我宁愿使用User.Identity.Name,因为我可以在任何需要的地方使用它,或者我认为。
I am trying to get a custom property out of the UserProfile in MVC4 which uses SimpleMembershipProvider. My table is as follows:
public class UserProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { get; set; } //Added to round out requirements for site user profile public string FirstName { get; set; } public string LastName { get; set; } public string Site { get; set; } }When I try to get the userprofile item I am interested in, FirstName, in a session variable on login
public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { var context = new UsersContext(); var curuser = context.UserProfiles.First(p => p.UserName == User.Identity.Name); Session["FName"] = curuser.FirstName; return RedirectToLocal(returnUrl); } // If we got this far, something failed, redisplay form ModelState.AddModelError("", "The user name or password provided is incorrect."); return View(model); }I get an error: Sequence contains no elements referring to my var curuser line. If I replace User.Identity.Name with model.Username it works fine. I would rather use User.Identity.Name since I can use this wherever needed, or so I thought.
最满意答案
标题中的问题的答案就在于:
什么时候HttpContext.User.Identity设置?
希望这可以帮助
There lies the answer to your question in title:
When is HttpContext.User.Identity set?
Hope this helps
更多推荐
发布评论