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

发布于 2024-09-04 05:36:27 字数 1001 浏览 1 评论 0原文

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

该代码对我来说工作完美,并将我想要的信息放入会话中,但问题是,如果用户选择“记住我”并在下次访问时他不必登录,我也不会在会话中找到我想要的信息。我应该将在会话中存储用户信息的代码放在哪里?

I'm developing an application in .NET mvc2. I'm using aspnetMembershipProvider for User registration and related activities. I need some custom information about user that I stored in a separate table (sysUser for example) and linked it to aspnetUser table through foreign key.

After login I need to fetch user's credentials from sysUser table and push it to the session. For this Account controller's Logon method seemed best to me and I pasted following code in my Logon 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");
        }

The code is working perfectly for me and put my desired information in the session but the thing is that if a user selects Remember me and on his next visit he won't have to Log in and I would not find my desired information in the Session. Where should I put my code that stores the user information in the session?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴梦长久 2024-09-11 05:36:27
FormsAuthentication.SetAuthCookie(userName, saveLogin);

SetAuthCookie 方法的 MSDN 文档

FormsAuthentication.SetAuthCookie(userName, saveLogin);

MSDN Documentation for SetAuthCookie Method

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文