private void TokenValidate(HttpContext context, OneZeroContext oneZeroContext) { //if (_oneZeroContext.RequestIP != _oneZeroContext.TokenIP) //{ // throw new OneZeroException("检测到您登陆的地址不同,请重新登陆", HttpStatusCode.Redirect); //} }
/// <summary> /// 使用约定激活的中间件,注入的对象无法通过构造函数获取,只能在Invoke里获取 /// </summary> /// <param name="context"></param> /// <param name="next"></param> /// <param name="oneZeroContext"></param> /// <returns></returns> public async Task Invoke(HttpContext context, OneZeroContext oneZeroContext, OneZeroOption oneZeroOption) { _oneZeroContext = oneZeroContext; _oneZeroContext.IsAuththentic = oneZeroOption.IsAuthentic.CastTo(false); _oneZeroContext.RequestIP = context.Connection.RemoteIpAddress.ToString(); _oneZeroContext.ActionPath = context.Request.Path; //是否开启身份验证 if (_oneZeroContext.IsAuththentic) { _oneZeroContext.TokenIP = context.User.HasClaim(v => v.Type == "ip") ? context.User.Claims.Where(v => v.Type == "ip").Select(v => v.Value).First() : ""; _oneZeroContext.UserId = context.User.HasClaim(v => v.Type == "userid") ? context.User.Claims.Where(v => v.Type == "userid").Select(v => v.Value).First().CastTo(default(Guid)) : default(Guid); _oneZeroContext.TenanId = context.User.HasClaim(v => v.Type == "tenanid") ? context.User.Claims.Where(v => v.Type == "tenanid").Select(v => v.Value).First().CastTo(default(Guid)) : oneZeroOption.DefaultTenanId.ConvertToGuid("TenanId配置"); _oneZeroContext.MenuList = context.User.Claims.Where(v => v.Type == "menus")?.Select(v => v.Value); _oneZeroContext.RoleList = context.User.Claims.Where(v => v.Type == "roles")?.Select(v => v.Value); _oneZeroContext.PermissionList = context.User.Claims.Where(v => v.Type == "permissions")?.Select(v => v.Value); //通过token携带信息判断,该请求是否合法 TokenValidate(context, oneZeroContext); } else { //默认租户ID _oneZeroContext.TenanId = oneZeroOption.DefaultTenanId.ConvertToGuid("TenanId配置"); } await _next(context); }
public BaseService(IUnitOfWork unitOfWork, IDapperProvider dapper, IMapper mapper, OneZeroContext oneZeroContext) { _unitOfWork = unitOfWork; _dapper = dapper; _mapper = mapper; _oneZeroContext = oneZeroContext; DefaultConnectString = ((DbContext)_unitOfWork.GetDbContext()).Database.GetDbConnection().ConnectionString; }
public OneZeroUnitOfWork(IServiceProvider provider, OneZeroContext oneZeroContext) : base(provider) { _oneZeroContext = oneZeroContext; }
public OneZeroRepository(IDbContext dbContext, ILogger <Repository <TEntity, Guid> > logger, OneZeroContext oneZeroContext) : base(dbContext, logger) { _oneZeroContext = oneZeroContext; _logger = logger; }