/// <summary> /// 根据Http上下文生成声明 /// 具体生成服务通过静态键值对注册,键为生成器名称 /// 该方法将调用对应名称的生成服务来完成 /// </summary> /// <param name="generator"></param> /// <param name="httpContext"></param> /// <returns></returns> public async Task <ClaimsIdentity> Generate(HttpClaimGenerator generator, HttpContext httpContext) { if (!_httpClaimGeneratorServiceFactories.TryGetValue(generator.Type, out IFactory <IHttpClaimGeneratorService> generatorServiceFactory)) { var fragment = new TextFragment() { Code = TextCodes.NotFoundHttpClaimGeneratorServiceByType, DefaultFormatting = "找不到类型为{0}的Http声明生成服务,发生位置:{1}", ReplaceParameters = new List <object>() { generator.Type, $"{this.GetType().FullName}.HttpClaimGeneratorServiceFactories" } }; throw new UtilityException((int)Errors.NotFoundHttpClaimGeneratorServiceByType, fragment); } var result = await generatorServiceFactory.Create().Do(httpContext); return(result); }
public async Task Update(HttpClaimGenerator generator) { await _httpClaimGeneratorStore.Update(generator); }
public async Task Delete(HttpClaimGenerator generator) { await _httpClaimGeneratorStore.Delete(generator.ID); }
public async Task Add(HttpClaimGenerator generator) { await _httpClaimGeneratorStore.Add(generator); }