我正在使用.NET mvc2开发一个应用程序。我正在使用aspnetMembershipProvider进行用户注册和相关活动。我需要一些关于用户的自定义信息,我将其存储在一个单独的表(例如sysUser)中,并通过外键将其链接到aspnetUser表。
登录后,我需要从sysUser表中获取用户的凭据并将其推送到会话中。对于这个帐户控制器的登录方法似乎对我来说最好,我在我的登录ActionResult中粘贴了以下代码
if (!ValidateLogOn(userName, password))
{
return View();
}
FormsAuth.SignIn(userName, rememberMe);
ApplicationRepository _ApplicationRepository = new ApplicationRepository();
MembershipUser aspUser = Membership.GetUser(userName);
SessionUser CurrentUser = _ApplicationRepository.GetUserCredentials(aspUser.ProviderUserKey.ToString());
//Session["CurrentUser"] = CurrentUser;
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
代码对我来说非常合适,并且在会话中提供了我想要的信息但事情是,如果用户选择记住我,并且在他下次访问时他将不必登录,我找不到我想要的信息在会议中。我应该在哪里将用于存储用户信息的代码放在会话中?
答案 0 :(得分:0)
FormsAuthentication.SetAuthCookie(userName, saveLogin);
SetAuthCookie方法的MSDN文档