当前位置: 首页 > wzjs >正文

浙江省龙泉市建设局网站网站建设规划书费用预算

浙江省龙泉市建设局网站,网站建设规划书费用预算,机器设备行业网站模板,大宅别墅设计装修公司思路:Web项目中,需要根据当前登陆的用户,查询当前用户所属的数据、添加并标识对象等。根据请求头Authorization 中token,获取Redis中存储的用户对象。 本做法需要完成 基于StackExchange.Redis 配置,参考:…

思路:Web项目中,需要根据当前登陆的用户,查询当前用户所属的数据、添加并标识对象等。根据请求头Authorization 中token,获取Redis中存储的用户对象。

本做法需要完成 基于StackExchange.Redis 配置,参考:Asp.Net Core基于StackExchange Redis 缓存-CSDN博客

NuGet安装

Microsoft.AspNetCore.Http.Abstractions

1.接口

public interface IUserService
{Task<OMUserInfo> GetUserInfoAsync(string token);Task<OMUserInfo> GetCurrentUserAsync();
}

2.用户对象

public class OMUserInfo
{public Guid UId { get; set; }public string UName { get; set; }public string TrueName { get; set; }public string Mobile { get; set; }public bool IsAdmin { get; set; }public string Department { get; set; }public string UType { get; set; }public string OId { get; set; }public string Token { get; set; }public DateTime ExpireDateTime { get; set; }
}

3.实现

public class OMUserService : IUserService
{private readonly IRedisService _redisService;private readonly IHttpContextAccessor _httpContextAccessor;public OMUserService(IRedisService redisService,IHttpContextAccessor httpContextAccessor){_redisService = redisService;_httpContextAccessor = httpContextAccessor;}public async Task<OMUserInfo> GetCurrentUserAsync(){var token = GetTokenFromHeader();if (string.IsNullOrEmpty(token))return null;return await GetUserInfoAsync(token);}public async Task<OMUserInfo> GetUserInfoAsync(string token){var userKey = $"user:{token}";return await _redisService.StringGetAsync<OMUserInfo>(userKey);}private string GetTokenFromHeader(){var authHeader = _httpContextAccessor.HttpContext?.Request.Headers["Authorization"].ToString();return authHeader?.Replace("Bearer ", "", StringComparison.OrdinalIgnoreCase);}
}

4.注入

Asp.Net Core项目Nuget添加 Microsoft.Extensions.Caching.StackExchangeRedis

 // 添加HttpContext访问器builder.Services.AddHttpContextAccessor();//注册用户服务// 注册Redis服务(使用之前实现的IRedisService)builder.Services.AddStackExchangeRedisCache(options =>{options.Configuration = builder.Configuration.GetConnectionString("Redis");});builder.Services.AddScoped<IUserService, OMUserService>();

5.控制器中使用

private readonly IRedisService _redis;
private readonly IUserService _userService;
public TestController(IRedisService redis, IUserService userService) 
{_redis = redis;_userService = userService;
}[HttpGet("string")]
public async Task<IActionResult> TestString()
{var user = await _userService.GetCurrentUserAsync();Console.WriteLine(user.TrueName);await _redis.StringSetAsync("anna","多慢慢");var result = await _redis.StringGetAsync<string>("anna");return Ok(result);
}

http://www.dtcms.com/wzjs/790552.html

相关文章:

  • 浙江省住房城乡建设厅网站六安网站建设找哪家
  • 长春网站分析门户网站建设课程设计
  • 深圳网站建设公司设计公司长沙公交优化
  • 做图片带字的网站黑龙江省建设厅官网
  • 电子书新手学做网站wordpress默认密码恢复
  • 南京建设网站首页淄博网站排名seo
  • 衡阳网站页面设计公司wordpress后台登录
  • 千博企业网站管理系统2013网页传奇血饮龙纹攻略
  • 公众号如何推广如何做网站seo
  • 做第三方的qq互联接口时_回调到自己的网站时要延时很久是什么原因深圳做网站报价
  • 编程网站入口wordpress的ssl
  • PS做游戏网站需要做几个网页东莞百姓网交友
  • 医疗网站模板下载wordpress站迁移后速度慢
  • 单位网站备案流程wordpress隐私页
  • 哪些网站专门做细胞的山东网站建设xywlcn
  • 品网站建设公司排名企业网站建设知乎
  • 网站建设晋icp备龙岩房产网
  • 做网站的劣势安徽集团网站建设
  • 新乡建设公司网站阳江公司网站建设
  • 网站的统计代码莱芜都市网房产频道
  • 如何给网站做右侧悬浮电话襄阳百度seo
  • 做网站时候如果添加微信代码wordpress 悬浮音乐
  • 上海公司网站建设多少钱泉州营销型网站设计
  • 用百度云服务器做网站网站设计用ps 怎么做
  • 网站引流推广怎么做百度关键词搜索推广
  • 汽配公司的网站要怎么做郑州整形网站建设
  • 重庆市渝兴建设投资有限公司网站php7.1 WordPress
  • 做自媒体可以参考的外国网站减肥产品网站模板
  • 网站错误模板公司seo
  • 攀枝花建设工程有限责任公司网站免费网站托管