Asp.net mvc 4 ASP.NET MVC 4会员资格如何;“记住我”;工作

Asp.net mvc 4 ASP.NET MVC 4会员资格如何;“记住我”;工作,asp.net-mvc-4,asp.net-membership,remember-me,Asp.net Mvc 4,Asp.net Membership,Remember Me,我正在使用ASP.NETMVC4中的标准成员资格功能 我有一个登录表单,当用户成功登录时,会从数据库中检索一些用户信息,并将其放入会话变量中,我在应用程序的某些部分使用该变量 我的问题如下: 当我激活“记住我”选项时,它可以正常工作,但是会话变量永远不会被加载,因为这个变量实际上是在登录验证过程中加载的,现在被跳过了 我的问题是:有没有办法捕捉到“记住我”的验证过程,将我的自定义代码放入我需要的会话变量?(或者在“记住我”cookie中添加更多信息,我以后可以使用这些信息?) 谢谢在您的场景中,

我正在使用ASP.NETMVC4中的标准成员资格功能

我有一个登录表单,当用户成功登录时,会从数据库中检索一些用户信息,并将其放入会话变量中,我在应用程序的某些部分使用该变量

我的问题如下:

当我激活“记住我”选项时,它可以正常工作,但是会话变量永远不会被加载,因为这个变量实际上是在登录验证过程中加载的,现在被跳过了

我的问题是:有没有办法捕捉到“记住我”的验证过程,将我的自定义代码放入我需要的会话变量?(或者在“记住我”cookie中添加更多信息,我以后可以使用这些信息?)


谢谢

在您的场景中,您可以使用Global.asax的Session\u Start事件来填充用户信息

public class Global : System.Web.HttpApplication
{
    protected void Session_Start(object sender, EventArgs e)
    {
        if (HttpContext.Current.User != null &&
            HttpContext.Current.User.Identity.IsAuthenticated &&
            HttpContext.Current.Session["MyUserInfo"] == null)
        {
            // Get the user's information from database and save it to Session.
            HttpContext.Current.Session["MyUserInfo"] = "johndoe";
        }
    }
}

请纠正我的错误,您所做的是在登录时返回包含一些信息的对象并将其放入会话中。创建auth Cookie后,设置过期日期并将其放入响应中。您还可以在web.config中的formauth元素上设置一个超时(比如说5天)。现在,您可以通过发送身份验证cookie绕过身份验证。如果这是真的,我相信你的对象应该仍然存储在会话中?问题是你需要这个东西还是你需要一个新的,甚至用“记住我”这个词?