Asp.net mvc 4 ASP.NET MVC 4会员资格如何;“记住我”;工作
我正在使用ASP.NETMVC4中的标准成员资格功能 我有一个登录表单,当用户成功登录时,会从数据库中检索一些用户信息,并将其放入会话变量中,我在应用程序的某些部分使用该变量 我的问题如下: 当我激活“记住我”选项时,它可以正常工作,但是会话变量永远不会被加载,因为这个变量实际上是在登录验证过程中加载的,现在被跳过了 我的问题是:有没有办法捕捉到“记住我”的验证过程,将我的自定义代码放入我需要的会话变量?(或者在“记住我”cookie中添加更多信息,我以后可以使用这些信息?)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中添加更多信息,我以后可以使用这些信息?) 谢谢在您的场景中,
谢谢在您的场景中,您可以使用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绕过身份验证。如果这是真的,我相信你的对象应该仍然存储在会话中?问题是你需要这个东西还是你需要一个新的,甚至用“记住我”这个词?