コード例 #1
0
        public async Task <IActionResult> Login(LoginModel model)
        {
            Current_user = "";
            if (ModelState.IsValid)
            {
                var user = new User()
                {
                    Login    = model.Login,
                    Password = model.Password
                };
                //после проверки логина и пароля -формируем строку для подключения к бд
                _connectionString.SetConnectionString(user);
                //пытаемся авторизироваться при помощи введенных логина и пароля
                try
                {
                    var connString = _connectionString.GetConnectionString();

                    using (var conn = new NpgsqlConnection(connString))
                    {
                        conn.Open();
                        using (var cmd = new NpgsqlCommand())
                        {
                            cmd.Connection = conn;
                        }

                        conn.Close();
                    }

                    await Authenticate(model.Login);                     // авторизация
                }
                catch (Exception ex)
                {
                    //в случае ошибки авторизации
                    ModelState.AddModelError("", "Некорректные логин и(или) пароль");
                    _logger.LogFatal(ex, "Некорректные логин и(или) пароль");
                    return(Content("Некорректные логин и(или) пароль"));
                }

                Current_user = model.Login;
                //даем пользователю права на работу с бд
                Give_Permission();
                _logger.LogInfo($"User {Current_user} logged in");
                return(RedirectToAction("Send", "File"));
            }
            return(View(model));
        }
コード例 #2
0
ファイル: FileController.cs プロジェクト: Kirill29/Praktika
        public async Task <IActionResult> Upload()
        {
            filesCmrs.Clear();
            long _demandArchiveErsNr;

            try
            {
                DemandArchiveErs DAE = new DemandArchiveErs()
                {
                    WorkstationsNr            = Int32.Parse(_configuration["WorkstationsNr"]),
                    RegionTypesNr             = Int32.Parse(_configuration["RegionTypesNr"]),
                    ConfirmDeleteAfterArchive = Int32.Parse(_configuration["ConfirmDeleteAfterArchive"])
                };

                //сохраняем аттрибуты пакета файлов
                _demandArchiveErsNr = await Save_Package_atrributes(DAE);
            }
            catch (Exception ex)
            {
                _logger.LogFatal(ex, "Error while saving data in demandArchiveErs");
                return(Content("Error while saving data in demandArchiveErs"));
            }

            _logger.LogInfo($"Package atrributes were saved in demandArchiveErs,ID : {_demandArchiveErsNr}");
            FormValueProvider formModel;
            var name_date = DateTime.Now.ToString("_dd_MM_yyyy_(hh_mm_ss)");

            var path_to_directory = Path.Combine(_appEnvironment.WebRootPath,
                                                 Path.Combine(AccountController.Current_user, name_date));

            //string path_to_directory = Path.Combine("D:", Path.Combine(AccountController.Current_user, name_date));
            //создаем директорию с уникальным именем(папка, заданая в appsettings.json,+имя пользователя+дата время)
            if (!Directory.Exists(path_to_directory))
            {
                Directory.CreateDirectory(path_to_directory);
            }

            _logger.LogInfo($"Crate directory {path_to_directory}");
            var path  = (path_to_directory);
            var path1 = Path.Combine(path_to_directory, Path.GetRandomFileName());

            using (var stream = System.IO.File.Create(path1))
            {
                formModel = await Request.StreamFile(stream, path);
            }

            var viewModel = new MyViewModel();

            var bindingSuccessful = await TryUpdateModelAsync(viewModel, prefix : "",
                                                              valueProvider : formModel);

            if (!bindingSuccessful)
            {
                if (!ModelState.IsValid)
                {
                    _logger.LogError("Error has happend in file_sending");
                    return(BadRequest(ModelState));
                }
            }

            long?file_size;
            long?_filesDemandArchiveErsNr;

            try
            {
                for (var i = 0; i < FileStreamingHelper.file_name.Count - 1; i++)
                {
                    file_size = new FileInfo(Path.Combine(path, FileStreamingHelper.file_name[i])).Length;
                    var FDE = new FilesDemandArchiveErs()
                    {
                        FileSizeInBytes    = file_size,
                        PathFileName       = path,
                        DemandArchiveErsNr = _demandArchiveErsNr
                    };
                    //сохраняем атрибуты файлов
                    _filesDemandArchiveErsNr = await Save_File_atrributes(FDE);

                    FilesCmr filesCmr = new FilesCmr()
                    {
                        RootDir              = path,
                        FileName             = FileStreamingHelper.file_name[i],
                        FileSize             = file_size.ToString(),
                        FilesDemandArchiveNr = _filesDemandArchiveErsNr,
                        DemandArchiveErsNr   = _demandArchiveErsNr,
                        DateSendDemand       = DateTime.Now.Date
                    };

                    filesCmrs.Add(filesCmr);
                }
            }
            catch (Exception ex)
            {
                _logger.LogFatal(ex, "Error while saving data in filesDemandArchiveErs");
                return(Content(ex.Message));
            }
            _logger.LogInfo("All file's attributes were saved");
            return(RedirectToAction("Index", "File"));
        }