Exemplo n.º 1
0
        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);
        }