public ClientLoginResponse ClientLogin(ClientLoginRequest request)
        {
            var result      = new ServerClientLoginResponse();
            var returnValue = result.ProcessRequest(cnn, request);

            return(returnValue);
        }
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var           identity         = new ClaimsIdentity(context.Options.AuthenticationType);
            string        connectionString = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString;
            SqlConnection cnn = new SqlConnection(connectionString);

            var oper = Convert.ToInt16(context.OwinContext.Get <string>("operator"));

            ClientLoginRequest request = new ClientLoginRequest
            {
                Login    = Convert.ToInt64(context.UserName),
                Password = context.Password,
                Operator = oper
            };

            var result = new ServerClientLoginResponse();
            var authentificationResult = result.ProcessRequest(cnn, request);

            if (authentificationResult.ErrorCode == 0)
            {
                //identity.AddClaim(new Claim(ClaimTypes.Role, authentificationResult.ClientID));
                //identity.AddClaim(new Claim("username", context.UserName));
                identity.AddClaim(new Claim("client", authentificationResult.ClientID.ToString()));
                identity.AddClaim(new Claim("oper", oper.ToString()));
                context.Validated(identity);
            }
            else
            {
                //Пишем текст ошибки
                context.SetError("invalid_grant", "Provided username and password is incorrect");

                //Добавляем в заголовок наш флаг (константу), он будет проверен посредником CustomAuthenticationMiddleware
                context.Response.Headers.Add(ServerGlobalVariables.OwinStatusFlag, new[] { ((int)HttpStatusCode.Unauthorized).ToString() });
            }
        }
Beispiel #3
0
        public ClientLoginResponse ClientLogin(ClientLoginRequest request)
        {
            Log.Information("LCManagerPartner ClientLogin {Login}", request.Login);
            var result      = new ServerClientLoginResponse();
            var returnValue = result.ProcessRequest(cnn, request);

            return(returnValue);
        }