コード例 #1
0
ファイル: MyAuthHandler.cs プロジェクト: simpleway2016/JMS
        /// <summary>
        /// 认证处理
        /// </summary>
        public Task <AuthenticateResult> AuthenticateAsync()
        {
            if (_context.Request.Headers.ContainsKey(HeaderName) == false)
            {
                return(Task.FromResult(AuthenticateResult.Fail("")));
            }

            var         token  = _context.Request.Headers[HeaderName].FirstOrDefault();
            TokenClient client = new TokenClient(ServerAddress, ServerPort, Cert);

            try
            {
                string strContent = client.Verify(token).ToString();

                if (Callback != null)
                {
                    AuthenticationParameter parameter = new AuthenticationParameter(token);
                    parameter.Content = strContent;
                    if (!Callback(parameter))
                    {
                        return(Task.FromResult(AuthenticateResult.Fail("")));
                    }
                    else
                    {
                        return(Task.FromResult(AuthenticateResult.Success(GetAuthTicket(parameter.Content?.ToString()))));
                    }
                }

                return(Task.FromResult(AuthenticateResult.Success(GetAuthTicket(strContent))));
            }
            catch (AuthenticationException ex)
            {
                if (Callback != null)
                {
                    AuthenticationParameter parameter = new AuthenticationParameter(token);
                    if (Callback(parameter))
                    {
                        return(Task.FromResult(AuthenticateResult.Success(GetAuthTicket(parameter.Content?.ToString()))));
                    }
                }

                return(Task.FromResult(AuthenticateResult.Fail(ex.Message)));
            }
            catch
            {
                if (Callback != null)
                {
                    AuthenticationParameter parameter = new AuthenticationParameter(token);
                    if (Callback(parameter))
                    {
                        return(Task.FromResult(AuthenticateResult.Success(GetAuthTicket(parameter.Content?.ToString()))));
                    }
                }

                return(Task.FromResult(AuthenticateResult.Fail("")));
            }
        }
コード例 #2
0
        public static IReadOnlyList <AuthenticationParameter> GetAuthenticationParameters(string templateId)
        {
            if (IdeServices.TemplatingService.GetSolutionTemplate(templateId) is MicrosoftTemplateEngineSolutionTemplate template)
            {
                if (template.IsSupportedParameter(AuthenticationParameter.ParameterName))
                {
                    var parameterChoices = template.GetParameterChoices(AuthenticationParameter.ParameterName);
                    return(AuthenticationParameter.CreateSupportedParameterList(parameterChoices));
                }
            }

            return(new List <AuthenticationParameter> ());
        }