Ejemplo n.º 1
0
        public HttpResponseMessage auth(LoginRequestAuth login)
        {
            ActiveDirectoryUser user = null;

            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            try
            {
                var domName = ActiveDirectoryService.Get_correct_DomainName(login.domain);

                var res = ActiveDirectoryService.User_Logon(login.username, login.password, domName);

                if (res.Autenticated)
                {
                    if (login.includeDomainUserData)
                    {
                        try
                        {
                            user = ActiveDirectoryService.User_Info(login.username, domName);
                        }
                        catch (Exception ex)
                        {
                            res.ErrorMessage = "No fué posible obtener datos del usuario en el dominio. Razon =  " + ex.Message;
                        }
                    }


                    List <ActiveDirectoryGroup> userGroups = null;
                    if (login.includeGroups)
                    {
                        try
                        {
                            userGroups = ActiveDirectoryService.GetGroupsFromUser(login.username, domName);
                        }
                        catch (Exception ex)
                        {
                            res.ErrorMessage = "No fué posible obtener los grupos usuario en el dominio. Razon =  " + ex.Message;
                        }
                    }


                    var jwt = TokenGenerator.GenerateTokenJwt_LDAP(login.username, user, userGroups);

                    res.Token = jwt;
                }

                var resp = apiHelper.fromObject <LoogonUserResult>(res);


                return(resp);
            }
            catch (Exception ex)
            {
                return(apiHelper.fromEx(ex));
            }
        }
Ejemplo n.º 2
0
        public IActionResult auth(LoginRequestAuth login)
        {
            ActiveDirectoryUser user = null;

            if (login == null)
            {
                return(BadRequest(new ApiErrorResponse(HttpStatusCode.BadRequest, "Los parámetros del loging no son opcionales")));
            }
            try
            {
                var res = ActiveDirectoryService.User_Logon(login.username, login.password, login.domain);

                if (res.Autenticated)
                {
                    if (login.includeDomainUserData)
                    {
                        try
                        {
                            user = ActiveDirectoryService.User_Info(login.username, login.domain);
                        }
                        catch (Exception ex)
                        {
                            res.ErrorMessage = "No fué posible obtener datos del usuario en el dominio. Razon =  " + ex.Message;
                        }
                    }


                    List <ActiveDirectoryGroup> userGroups = null;
                    if (login.includeGroups)
                    {
                        try
                        {
                            userGroups = ActiveDirectoryService.GetGroupsFromUser(login.username, login.domain);
                        }
                        catch (Exception ex)
                        {
                            res.ErrorMessage = "No fué posible obtener los grupos usuario en el dominio. Razon =  " + ex.Message;
                        }
                    }


                    var jwt = TokenGenerator.GenerateTokenJwt_LDAP(login.username, user, userGroups);

                    res.Token = jwt;
                }

                return(Ok(res));
            }
            catch (Exception ex)
            {
                var msg = apiHelper.getMessageException(ex);
                return(BadRequest(new ApiErrorResponse(HttpStatusCode.InternalServerError, msg)));
            }
        }