使用aspNetMembershipProvider在会话中存储用户信息

时间:2010-06-03 11:54:33

标签: asp.net asp.net-membership

我正在使用.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");
        }

代码对我来说非常合适,并且在会话中提供了我想要的信息但事情是,如果用户选择记住我,并且在他下次访问时他将不必登录,我找不到我想要的信息在会议中。我应该在哪里将用于存储用户信息的代码放在会话中?

1 个答案:

答案 0 :(得分:0)

FormsAuthentication.SetAuthCookie(userName, saveLogin);

SetAuthCookie方法的MSDN文档