C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式

17 篇文章 1 订阅
6 篇文章 0 订阅

1.首先 Nuget 安装 

Newtonsoft.Json
RedisSessionProvider

替换成Microsoft.Web.Redis.RedisSessionStateProvider+

StackExchange.Redis.StrongName这个更好

RedisSessionProvider有时候会莫名其妙的没有插入redis-Session

StackExchange.Redis

Owin

2.WebConfig配置

<!-- Redis链接地址(如果开启异步发送TM/Infor 将暂存 要发送的数据)-->
    <add name="RedisExchangeHosts" connectionString="172.20.36.81:6379,password=*,allowAdmin=true,connectTimeout=30,connectRetry=3 " />

<sessionState mode="Custom" customProvider="RedisSessionProvider">
        <providers>
            <add name="RedisSessionProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider" />
        </providers>
    </sessionState>
    <!--机器码,用于分布式(需要支持跨域)多台 机器必须一致,否则Owin登录验证会失败-->
    <machineKey validationKey="18A251C37D7E8EF5A3BE49252553AF7C3C7C3DD49692E19D43BA55686B97E5488C727897BA8FE11C4BE44D621B723314EF6A006C07AA80682F75332D51EFB4C4" decryptionKey="2E5F65E687C77A6A4CAC82235F1D833EEA3951A995697FD9FBAB9EAF73A1C2FF" validation="SHA1" decryption="AES" />

3.Global.aspx-Application_Start() 配置

#region Session 分布式插件

            var RedisConStr = System.Configuration.ConfigurationManager.ConnectionStrings["RedisExchangeHosts"]?.ConnectionString;
            StackExchange.Redis.ConfigurationOptions redisConfigOpts = ConfigurationOptions.Parse(RedisConStr);
            RedisSessionProvider.Config.RedisConnectionConfig.GetSERedisServerConfig = (HttpContextBase context) =>
            {
                return new KeyValuePair<string, StackExchange.Redis.ConfigurationOptions>(
                    "DefaultConnection",
                    redisConfigOpts);
            };

            #endregion

4.使用

设置 Session["AppUser"] = AppUser;

获取ApplicationUser AppUser = (ApplicationUser)Session["AppUser"] ?? null;

配置 Nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个用于构建微服务的开源框架,它能够快速搭建项目并且提供了许多便捷的功能和特性。Spring Security 是一个用于处理认证和授权的框架,可以保护我们的应用程序免受恶意攻击。JWT(JSON Web Token)是一种用于身份验证的开放标准,可以被用于安全地传输信息。Spring MVC 是一个用于构建 Web 应用程序的框架,它能够处理 HTTP 请求和响应。MyBatis 是一个用于操作数据库的框架,可以简化数据库操作和提高效率。Redis 是一种高性能的键值存储系统,可以用于缓存与数据存储。 基于这些技术,可以搭建一个商城项目。Spring Boot 可以用于构建商城项目的后端服务,Spring Security 可以确保用户信息的安全性,JWT 可以用于用户的身份验证,Spring MVC 可以处理前端请求,MyBatis 可以操作数据库,Redis 可以用于缓存用户信息和商品信息。 商城项目的后端可以使用 Spring Boot 和 Spring Security 来搭建,通过 JWT 来处理用户的身份验证和授权。数据库操作可以使用 MyBatis 来简化与提高效率,同时可以利用 Redis 来缓存一些常用的数据和信息,提升系统的性能。前端请求则可以通过 Spring MVC 来处理,实现商城项目的整体功能。 综上所述,借助于 Spring Boot、Spring Security、JWT、Spring MVC、MyBatis 和 Redis 这些技术,可以构建出一个高性能、安全可靠的商城项目,为用户提供良好的购物体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值