在ASP .NET MVC中存储会话数据

伦登

Session在应用程序中使用它来存储一些数据,例如用户名(写你好,...)等等。另外,我FormsAuthentication用于验证用户身份,因此控制器具有如下代码:

protected void SetAuthCookie(int userId)
    {
        FormsAuthentication.SetAuthCookie(userId.ToString(), true);
        User user = Repositories.UserRepository.GetUserById(userId);

        Session["name"] = user.Name;
        Session["email"] = user.Email;
        Session["balance"] = user.TotalBalance + " / " + user.ActiveBalance;
        Session["isConfirmed"] = user.IsConfirmed;
        Session["phone"] = user.Phone;
    }

因此,当我在某些代码更改后重新启动应用程序时,会话数据被破坏了,但用户仍然通过身份验证,因此我的处境非常糟糕,我想修复它。一方面,我可以在某处创建代码,该代码将检查会话数据是否正常,否则将其刷新。另一方面,我可能会错过一些以正确方式存储此数据的技术吗?

在这种情况下最好的解决方案是什么?


<sessionState mode="InProc" customProvider="DefaultSessionProvider">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
  </providers>
</sessionState>
丹尼尔·斯塔克兰

我在global.asax.cs文件中有一个类似的问题可以解决此问题:如果会话为空并且请求已通过身份验证,它将强制注销。(将您的会话值之一始终设置为检查空值)

    protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        ForceLogoutIfSessionExpired();
    }

    private void ForceLogoutIfSessionExpired()
    {
        if (Context.Handler is IRequiresSessionState)
        {
            if (Request.IsAuthenticated)
            {
                if (HttpContext.Current.Session["name"] == null)
                {
                    AuthenticationHandler.SignOut(Response);
                    Response.Redirect(FormsAuthentication.LoginUrl, true);
                }
            }
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ASP .NET MVC中存储会话数据

来自分类Dev

ASP.NET MVC中的会话

来自分类Dev

在会话ASP .NET MVC中像纯文本一样存储密码

来自分类Dev

ASP.NET在应用程序数据库中存储会话状态

来自分类Dev

刷新存储在asp.net中的会话中的值

来自分类Dev

asp.net 会话未存储在 sql 中

来自分类Dev

将JSON数据对象存储到ASP.NET MVC(实体框架)中的数据库

来自分类Dev

将JSON数据对象存储到ASP.NET MVC(实体框架)中的数据库

来自分类Dev

如何在ASP.NET MVC中重置会话超时

来自分类Dev

在ASP.NET MVC 5中即时更改会话超时

来自分类Dev

如何从ASP .NET Core MVC 1.0中的视图访问会话

来自分类Dev

ASP.NET MVC在JavaScript中设置会话变量

来自分类Dev

在ASP.NET MVC4中设置会话超时?

来自分类Dev

在asp.net核心的每个请求中,将用户数据存储在会话存储中还是从数据库中检索?

来自分类Dev

ASP.NET MVC 中的数据绑定

来自分类Dev

是否可以共享 SQL Server 数据库以在 Asp.Net Web Forms 中存储会话状态

来自分类Dev

ASP.NET MVC 5在Oracle数据库中存储身份用户

来自分类Dev

使用ASP.NET MVC将图像存储在数据库中

来自分类Dev

如何使用 ASP.NET MVC 将 JSON 数据存储和更新到文件中?

来自分类Dev

MVC 5,ASP.net数据存储到神秘位置

来自分类Dev

什么时候会话将在Asp.net或Asp.Net MVC中过期?

来自分类Dev

ASP.NET MVC会话状态超时

来自分类Dev

ASP.NET MVC 4会话超时

来自分类Dev

ASP.NET MVC维护对象会话

来自分类Dev

ASP.NET MVC会话变量丢失

来自分类Dev

ASP NET MVC 5会话状态

来自分类Dev

ASP.NET MVC 5 和会话

来自分类Dev

Asp.net MVC 会话到 cookie

来自分类Dev

ASP.NET MVC:检索存储在属性中的信息

Related 相关文章

热门标签

归档