用户限制修改

Uat_Study
hang 2022-05-26 15:39:54 +08:00
parent b550d940df
commit d29cc43b15
4 changed files with 23 additions and 35 deletions

View File

@ -76,8 +76,8 @@ namespace IRaCIS.Core.API
options.Filters.Add<ProjectExceptionFilter>(); options.Filters.Add<ProjectExceptionFilter>();
options.Filters.Add<UnitOfWorkFilter>(); options.Filters.Add<UnitOfWorkFilter>();
//options.Filters.Add<LimitUserRequestAuthorization>(); options.Filters.Add<LimitUserRequestAuthorization>();
}) })
.AddDataAnnotationsLocalization(options => { .AddDataAnnotationsLocalization(options => {
options.DataAnnotationLocalizerProvider = (type, factory) => options.DataAnnotationLocalizerProvider = (type, factory) =>

View File

@ -2,7 +2,6 @@
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -45,11 +44,11 @@ public class LimitUserRequestAuthorization : IAsyncAuthorizationFilter
//2、在这里取缓存 进行比较 看是否有其他人进行了登陆,如果其他人登陆了,就把之前用户挤掉 //2、在这里取缓存 进行比较 看是否有其他人进行了登陆,如果其他人登陆了,就把之前用户挤掉
var cacheUserToken = (await _provider.GetAsync<string>(_userInfo.Id.ToString())).Value; var cacheUserToken = (await _provider.GetAsync<string>(_userInfo.Id.ToString())).Value;
if (cacheUserToken == null) if (string.IsNullOrWhiteSpace(cacheUserToken))
{ {
//设置当前用户最新Token //设置当前用户最新Token
await _provider.SetAsync(_userInfo.Id.ToString(), _userInfo.UserToken, TimeSpan.FromDays(7)); await _provider.SetAsync(_userInfo.Id.ToString(), _userInfo.UserToken, TimeSpan.FromDays(7));
@ -69,23 +68,7 @@ public class LimitUserRequestAuthorization : IAsyncAuthorizationFilter
//context.Result = new StatusCodeResult(401); //context.Result = new StatusCodeResult(401);
} }
//var cacheHostToken = (await _provider.GetAsync<string>(_userInfo.IP.ToString()+_userInfo.LocalIp.ToString())).Value;
//if (cacheHostToken == null)
//{
// //设置当前主机最新Token
// await _provider.SetAsync(_userInfo.IP.ToString() + _userInfo.LocalIp.ToString(), _userInfo.UserToken, TimeSpan.FromDays(7));
//}
////是同主机
//else if (cacheHostToken == _userInfo.UserToken)
//{
//}
//else
//{
// context.Result = new StatusCodeResult(401);
//}
} }
} }

View File

@ -92,18 +92,6 @@ namespace IRaCIS.Application.Services
} }
//正则 至少8个字符至少1个大写字母1个小写字母1个数字和1个特殊字符
//^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}
if (!Regex.IsMatch(newPwd, @"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_.@])[A-Za-z0-9_.@$!%*?&]{10,}"))
{
throw new BusinessValidationFailedException("密码至少10个字符且包括至少1个大写字母1个小写字母1个数字和1个特殊字符");
}
} }
await Task.CompletedTask; await Task.CompletedTask;

View File

@ -158,7 +158,24 @@ namespace IRaCIS.Core.Domain.Share
{ {
get get
{ {
return _accessor?.HttpContext?.Request.Headers["Authorization"].ToString()?.Substring(7);
var authorizationHeader = _accessor?.HttpContext?.Request.Headers["Authorization"].ToString();
if (!string.IsNullOrWhiteSpace(authorizationHeader))
{
return authorizationHeader.Substring(7);
}
var token = _accessor?.HttpContext?.Request.Query["access_token"].ToString();
if (!string.IsNullOrWhiteSpace(token))
{
return token;
}
return string.Empty;
} }
} }
@ -218,7 +235,7 @@ namespace IRaCIS.Core.Domain.Share
{ {
var url = _accessor?.HttpContext?.Request?.Path.ToString(); var url = _accessor?.HttpContext?.Request?.Path.ToString();
var list = url.Split('/').Where(t=>!string.IsNullOrWhiteSpace(t)). ToList(); var list = url.Split('/').Where(t => !string.IsNullOrWhiteSpace(t)).ToList();
if (url.Contains("Inspection", StringComparison.OrdinalIgnoreCase)) if (url.Contains("Inspection", StringComparison.OrdinalIgnoreCase))
{ {