protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, BodyRecognitionRequirement requirement) { string siteId = (context.Resource as HttpContext).Request.Query["siteId"]; IRecognition recognizer = new BodyRecognition(); if (recognizer.Recognize(siteId, out string name) >= requirement.ConfidenceScore) { context.User.AddIdentity(new ClaimsIdentity(new GenericIdentity(name))); context.Succeed(requirement); } return(Task.CompletedTask); }
public Task HandleAsync(AuthorizationHandlerContext context) { string siteId = (context.Resource as HttpContext).Request.Query["siteId"]; foreach (var requirement in context.PendingRequirements) { IRecognition recognizer = null; double score = 1.0d; switch (requirement) { case FaceRecognitionRequirement r: recognizer = new FaceRecognition(); score = r.ConfidenceScore; break; case BodyRecognitionRequirement r: recognizer = new BodyRecognition(); score = r.ConfidenceScore; break; case FaceRecognitionRequirement r: recognizer = new VoiceRecognition(); score = r.ConfidenceScore; break; } if (recognizer != null && recognizer.Recognize(siteId, out string name) >= score) { context.User.AddIdentity(new ClaimsIdentity(new GenericIdentity(name))); context.Succeed(requirement); } else { context.Fail(); } } return(Task.CompletedTask); }