powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
16 сообщений из 16, страница 1 из 1
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40088971
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Проект asp.net core 3.1, mvc.

Пытаюсь загрузить данные из файла в базу данных сервера, с помощью POST-запроса с JSON через API-контроллер из вне, выдает ошибку:
авторerror: [object Object] status: error er:Unauthorized

401 Unauthorized

При этом авторизацию пользователь прошел.
Заголовки:
авторscheme http
host 195.ххххххх
filename /CollectVoters/api/FileApi/uploadDataFromFile

Адрес 195.ххххххх:80

Состояние 401 Unauthorized
Версия HTTP/1.1
Передано 1,07 МБ (размер 0 б)
Политика Referrerstrict-origin-when-cross-origin


Заголовки ответа
Date Thu, 05 Aug 2021 13:49:35 GMT
Location http://195.xxxxxxx/CollectVoters/Account/login?ReturnUrl=/CollectVoters/api/FileApi/uploadDataFromFile
Server
Microsoft-IIS/10.0
Transfer-Encoding
chunked
X-Powered-By
ASP.NET

Заголовки запроса:
Accept application/json
Accept-Encoding
gzip, deflate
Accept-Language
ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Connection
keep-alive
Content-Length
1119205
Content-Type
application/json
Host
195.хххххххх
Origin
http://195.ххххххх
Referer
http://195.ххххххх/collectvoters/UploadFiles
RequestVerificationToken
CfDJ8E_6DbN7jdpPgMFyLYN6J0O6ZYgVLlEdaT4gqM17s2tmHcWvkBaOPwi-UeinP8C8QVAyeCNJFEpraPmWcLCc5Z6eLWC10vNxD8SDusO7BKSp7ASxtuq1NYsJGFimfH5yEXoFQtl3UfAcASEcv6vU1Y14nsPMNXMqAGagjFuVDmUfsDpz61qDDGSdTkQAbPuDKw
User-Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0
X-Requested-With XMLHttpRequest


Сам контроллер с методом:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
[Route("api/[controller]")]
    [ApiController]
    [Produces("application/json")]
    [Authorize(Roles = "admin, user")]
    public class FileApiController : ControllerBase
    {
        private readonly ILogger<FileApiController> _logger;
        private readonly VoterCollectorContext _context;

        public FileApiController(VoterCollectorContext context, ILogger<FileApiController> logger)
        {
            _context = context;
            _logger = logger;
        }

[HttpPost("uploadDataFromFile")]
        public async Task<IActionResult> UploadDataFromFile([FromBody] FriendDTO[] friendsDTO)
        {
            ServiceUser serviceUser = new ServiceUser(_context);

            List<FileUploadDTO> notUploadRecords = new List<FileUploadDTO>();

            User userSave = _context.User.Where(u => u.UserName.Equals(User.Identity.Name)).FirstOrDefault();
            List<Groupu> groupsUser = serviceUser.GetGroupsUser(User.Identity.Name);
            ServiceFriends serviceFriends = new ServiceFriends();

            //Regex regexTelephone = new Regex(@"(^[+]{0,1}[0-9]{11})");
            Regex regexTelephone = new Regex(@"^\+?\d{11}$");

            for (int i=1; i< friendsDTO.Length; i++)
            {
                try
                {
                    //...
                    _context.Add(newFriend);                    
                }
                catch {

                   //...
                }
            }

            try
            {
                await _context.SaveChangesAsync();
                return Ok(notUploadRecords.ToArray());
            }
            catch (Exception ex)
            {
                int i = 0;
                _logger.LogError(ex.ToString()); // .Exception(ex).Message("Ошибка записи в БД").Write();
                notUploadRecords = friendsDTO.Select(x => new FileUploadDTO
                {
                    //...
                notUploadRecords.RemoveAt(0);
                return Ok(notUploadRecords.ToArray());
            }            
        }

}


На тесте (IIS Express) все работало норм.

Может это из-за того, что я это делаю через API-контроллер и чего-то не учел в настройках?
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40088994
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал создал в mvc-контроллере аналогичный метод для записи в БД из JSON c фронта:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
[Authorize(Roles = "admin, user")]
    public class UploadFilesController : Controller
    {
        private readonly ILogger<UploadFilesController> _logger;
        private readonly VoterCollectorContext _context;

        public UploadFilesController(VoterCollectorContext context, ILogger<UploadFilesController> logger)
        {
            _logger = logger;
            _context = context;
        }

        public IActionResult Index()
        {
            try
            {
                return View();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return View();
            }
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> UploadDataFromFile([FromBody] FriendDTO[] friendsDTO)
        {
            ServiceUser serviceUser = new ServiceUser(_context);

            List<FileUploadDTO> notUploadRecords = new List<FileUploadDTO>();

            User userSave = _context.User.Where(u => u.UserName.Equals(User.Identity.Name)).FirstOrDefault();
            List<Groupu> groupsUser = serviceUser.GetGroupsUser(User.Identity.Name);
            ServiceFriends serviceFriends = new ServiceFriends();

            //Regex regexTelephone = new Regex(@"(^[+]{0,1}[0-9]{11})");
            Regex regexTelephone = new Regex(@"^\+?\d{11}$");

            for (int i = 1; i < friendsDTO.Length; i++)
            {
                try
                {
                    friendsDTO[i].UserId = userSave.IdUser;
                    //Friend newFriend = CreateFreand(friendsDTO[i]);
                    Friend newFriend = serviceFriends.CreateFreand(friendsDTO[i], regexTelephone, userSave, groupsUser);
                    _context.Add(newFriend);
                }
                catch
                {

                    notUploadRecords.Add(new FileUploadDTO
                    {
                        NumberStrFile = Convert.ToString(i + 1),
                        FamilyName = friendsDTO[i].FamilyName,
                        Name = friendsDTO[i].Name,
                        PatronymicName = friendsDTO[i].PatronymicName,
                        DateBirth = friendsDTO[i].DateBirth,
                        CityName = friendsDTO[i].CityName,
                        Street = friendsDTO[i].Street,
                        House = friendsDTO[i].House
                    });
                }
            }

            try
            {
                await _context.SaveChangesAsync();
                return Ok(notUploadRecords.ToArray());
            }
            catch (Exception ex)
            {
                int i = 0;
                _logger.LogError(ex.ToString()); // .Exception(ex).Message("Ошибка записи в БД").Write();
                notUploadRecords = friendsDTO.Select(x => new FileUploadDTO
                {
                    NumberStrFile = Convert.ToString(i++),
                    FamilyName = x.FamilyName,
                    Name = x.Name,
                    PatronymicName = x.PatronymicName,
                    DateBirth = x.DateBirth,
                    CityName = x.CityName,
                    Street = x.Street,
                    House = x.House
                }).ToList();
                notUploadRecords.RemoveAt(0);
                return Ok(notUploadRecords.ToArray());
            }
        }
    }



Выдает аналогичную ошибку:
авторPOST

scheme http
host 195.xxx.xxx.40
filename /CollectVoters/UploadFiles/uploadDataFromFile
Адрес 195.xxx.xxx.40:80

POST
http://195.xxx.xxx.40/CollectVoters/UploadFiles/uploadDataFromFile
Состояние 401 Unauthorized
ВерсияHTTP/1.1
Передано8,65 КБ (размер 0 б)
Политика Referrerstrict-origin-when-cross-origin

Заголовки ответа
Date Thu, 05 Aug 2021 15:42:28 GMT
Location http://195.xxx.xxx.40/CollectVoters/Account/login?ReturnUrl=/CollectVoters/UploadFiles/uploadDataFromFile
Server Microsoft-IIS/10.0
Transfer-Encoding chunked
X-Powered-By ASP.NET

Заголовки запроса:
Accept application/json
Accept-Encoding gzip, deflate
Accept-Language ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Connection keep-alive
Content-Length 7872
Content-Type application/json
Host 195.xxx.xxx.40
Origin
http://195.xxx.xxx.40
Referer
http://195.xxx.xxx.40/collectvoters/UploadFiles
RequestVerificationToken
CfDJ8E_6DbN7jdpPgMFyLYN6J0NO5OeznJJCWrd-16Q4mZBqbPlanDq-qkHv2CEddct1Y0Og-RFtgeeYhJ0NBnXA3BbKlULVgejbLxNn0ZP9n__ZxYxdAEqYp6pnSOfXz0mt3RUxDWTGdznoN4R1sK69BMBLorfAiCzNcKOe6_QOb8KwmYcFXkwmy3_KhX-sYcTj4Q
User-Agent
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0
X-Requested-With
XMLHttpRequest

И ещё в конце выдает следующее не понимаю при чем тут XML если я передаю JSON:
авторОшибка синтаксического анализа XML: корневой элемент не найден
Адрес: http://195.xxx.xxx.40/CollectVoters/UploadFiles/uploadDataFromFile
Строка 1, символ 1:
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089018
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя в запросе нет никакой аутентификации.
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089020
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
у тебя в запросе нет никакой аутентификации.


Не понял, пользователь когда на страницу входит он же авторизуется, а потом переходит на страницу загрузки данных, еще какая-то аутентификация нужна?
Кака её в запрос включить?
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089022
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
fkthat
у тебя в запросе нет никакой аутентификации.


Не понял, пользователь когда на страницу входит он же авторизуется, а потом переходит на страницу загрузки данных, еще какая-то аутентификация нужна?
Кака её в запрос включить?

Ну это уж я не знаю как у тебя frontend устроен. Факт то, что в заголовках запроса у тебя ничего связанного с аутентификацией (напр. cookie, JWT, и т.п.) нет вообще. Запрос по какой-то причине анонимный. И, еще, похоже, что это связано с Ajax.
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089023
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
пропущено...


Не понял, пользователь когда на страницу входит он же авторизуется, а потом переходит на страницу загрузки данных, еще какая-то аутентификация нужна?
Кака её в запрос включить?

Ну это уж я не знаю как у тебя frontend устроен. Факт то, что в заголовках запроса у тебя ничего связанного с аутентификацией (напр. cookie, JWT, и т.п.) нет вообще. Запрос по какой-то причине анонимный. И, еще, похоже, что это связано с Ajax.


У меня обычное приложение asp.net core 3.1 mvс, на бекэнде обрабатываю запросы следующим контроллеров:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
[Authorize(Roles = "admin, user")]
    public class UploadFilesController : Controller
    {
        private readonly ILogger<UploadFilesController> _logger;
        private readonly VoterCollectorContext _context;

        public UploadFilesController(VoterCollectorContext context, ILogger<UploadFilesController> logger)
        {
            _logger = logger;
            _context = context;
        }

        public IActionResult Index()
        {
            try
            {
                return View();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return View();
            }
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> UploadDataFromFile([FromBody] FriendDTO[] friendsDTO)
        {
            ServiceUser serviceUser = new ServiceUser(_context);

            List<FileUploadDTO> notUploadRecords = new List<FileUploadDTO>();

            User userSave = _context.User.Where(u => u.UserName.Equals(User.Identity.Name)).FirstOrDefault();
            List<Groupu> groupsUser = serviceUser.GetGroupsUser(User.Identity.Name);
            ServiceFriends serviceFriends = new ServiceFriends();

            //Regex regexTelephone = new Regex(@"(^[+]{0,1}[0-9]{11})");
            Regex regexTelephone = new Regex(@"^\+?\d{11}$");

            for (int i = 1; i < friendsDTO.Length; i++)
            {
                try
                {
                    friendsDTO[i].UserId = userSave.IdUser;
                    //Friend newFriend = CreateFreand(friendsDTO[i]);
                    Friend newFriend = serviceFriends.CreateFreand(friendsDTO[i], regexTelephone, userSave, groupsUser);
                    _context.Add(newFriend);
                }
                catch
                {

                    notUploadRecords.Add(new FileUploadDTO
                    {
                        NumberStrFile = Convert.ToString(i + 1),
                        FamilyName = friendsDTO[i].FamilyName,
                        Name = friendsDTO[i].Name,
                        PatronymicName = friendsDTO[i].PatronymicName,
                        DateBirth = friendsDTO[i].DateBirth,
                        CityName = friendsDTO[i].CityName,
                        Street = friendsDTO[i].Street,
                        House = friendsDTO[i].House
                    });
                }
            }

            try
            {
                await _context.SaveChangesAsync();
                return Ok(notUploadRecords.ToArray());
            }
            catch (Exception ex)
            {
                int i = 0;
                _logger.LogError(ex.ToString()); // .Exception(ex).Message("Ошибка записи в БД").Write();
                notUploadRecords = friendsDTO.Select(x => new FileUploadDTO
                {
                    NumberStrFile = Convert.ToString(i++),
                    FamilyName = x.FamilyName,
                    Name = x.Name,
                    PatronymicName = x.PatronymicName,
                    DateBirth = x.DateBirth,
                    CityName = x.CityName,
                    Street = x.Street,
                    House = x.House
                }).ToList();
                notUploadRecords.RemoveAt(0);
                return Ok(notUploadRecords.ToArray());
            }
        }
    }


на фронте у меня обычная страница:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
@model voteCollector.DTO.FileExcel

@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions {
    public string GetAntiXsrfRequestToken()
    {
        return Xsrf.GetAndStoreTokens(Context).RequestToken;
    }
}

<h4>Загрузка файла</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <input type="hidden" id="RequestVerificationToken"
               name="RequestVerificationToken" value="@GetAntiXsrfRequestToken()">
        <div class="form-group col-md-6">
            <input type="file" class="file-select" id="uploadFileFriends" name="uploadFileFriends" accept=".xls, .xlsx" />


        </div>
        <div class="form-row">
            <div class="form-group col-md-6">
                <input type="button" id="btnUploadFriends" class="btn btn-secondary btn-block" value="Загрузить в сервис" onclick="UploadExcelToWebService('uploadFileFriends');" />
            </div>
        </div>
        <div class="form-row">
            <div class="form-group col-md-6">
                <input type="button" id="btnUploadFriends" class="btn btn-secondary btn-block" value="Загрузить в сервис MVC" onclick="UploadExcelToWebServiceMVC('uploadFileFriends');" />
            </div>
        </div>
    </div>
    
</div>

<environment include="Development">
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
</environment>

<environment include="Production">
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
</environment>


@section Scripts {

    <script type="text/javascript" src="~/js/JS_UploadFiles.js"></script>
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}

    @{
        if (TempData["msg"] != null)
        {
            <script>
                alert('@TempData["msg"]')
            </script>
        }
    }
}



Отправляю запрос с неё:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
async function UploadExcelToWebService(fileSource) {
    var data = await ExcelToJSON('Freinds', fileSource);
    data = await removePropertysJsonObjects(data, ['FamilyName', 'Name', 'PatronymicName', 'DateBirth', 'CityName', 'Street', 'House', 'Apartment', 'Telephone', 'ElectiralDistrict','Organization', 'FieldActivityName', 'PhoneNumberResponsible', 'DateRegistrationSite', 'VotingDate', 'Vote', 'TextQRcode','Email','Description','Group']);

    $.ajax({
        type: 'POST',
        url: partMyURL+ '/api/FileApi/uploadDataFromFile',
        //url: "/CollectVoters/api/FileApi/uploadDataFromFile",
        headers:
        {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'RequestVerificationToken': $('#RequestVerificationToken').val()
        },
        processData: false,
        data: JSON.stringify(data),
        success: function (data) {

            //if (data != undefined) {
            //    data.sort();
            //}
            //DataFillingDiv(response, 'outText');
            DataFillingTableBody(data, 'fileUploadTable');
        },
        error: function (result, status, er) {
            alert('error: ' + result + ' status: ' + status + ' er:' + er);
        }
    });
}

async function UploadExcelToWebServiceMVC(fileSource) {
    var data = await ExcelToJSON('Freinds', fileSource);
    data = await removePropertysJsonObjects(data, ['FamilyName', 'Name', 'PatronymicName', 'DateBirth', 'CityName', 'Street', 'House', 'Apartment', 'Telephone', 'ElectiralDistrict', 'Organization', 'FieldActivityName', 'PhoneNumberResponsible', 'DateRegistrationSite', 'VotingDate', 'Vote', 'TextQRcode', 'Email', 'Description', 'Group']);

    $.ajax({
        type: 'POST',
        url: partMyURL + '/UploadFiles/uploadDataFromFile',
        //url: "/CollectVoters/api/FileApi/uploadDataFromFile",
        headers:
        {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'RequestVerificationToken': $('#RequestVerificationToken').val()
        },
        processData: false,
        data: JSON.stringify(data),
        success: function (data) {
         
            DataFillingTableBody(data, 'fileUploadTable');
        },
        error: function (result, status, er) {
            alert('error: ' + result + ' status: ' + status + ' er:' + er);
        }
    });
}
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089025
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
пропущено...


Не понял, пользователь когда на страницу входит он же авторизуется, а потом переходит на страницу загрузки данных, еще какая-то аутентификация нужна?
Кака её в запрос включить?

Ну это уж я не знаю как у тебя frontend устроен. Факт то, что в заголовках запроса у тебя ничего связанного с аутентификацией (напр. cookie, JWT, и т.п.) нет вообще. Запрос по какой-то причине анонимный. И, еще, похоже, что это связано с Ajax.


Аутентификация у меня через куки идет:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //Add
            // установка конфигурации подключения
            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(options => //CookieAuthenticationOptions
                {
                    options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Account/login");
                    options.AccessDeniedPath = new Microsoft.AspNetCore.Http.PathString("/Account/login");
                });
            //Add
            services.AddDbContext<VoterCollectorContext>();

            services.AddControllersWithViews();
            //Add
            services.Configure<IdentityOptions>(options =>
            {
                // Password settings.
                options.Password.RequireDigit = true;
                options.Password.RequireLowercase = true;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireUppercase = true;
                options.Password.RequiredLength = 8;
                options.Password.RequiredUniqueChars = 1;

                // Lockout settings.
                options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(10);
                options.Lockout.MaxFailedAccessAttempts = 7;
                options.Lockout.AllowedForNewUsers = true;

                // User settings.
                options.User.AllowedUserNameCharacters =
                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
                options.User.RequireUniqueEmail = false;

                
            });

            //Add
            services.AddControllers().AddNewtonsoftJson();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            //Add
            app.UseHttpsRedirection();

            app.UseStaticFiles();

            app.UseRouting();

            //Add
            //Метод app.UseAuthentication() встраивает в конвейер компонент AuthenticationMiddleware, который управляет аутентификацией.
       
            app.UseAuthentication();
             приложения.
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });

            //app.UseCors();
        }
    }
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089030
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Аутентификация у меня через куки идет:

Значит у тебя AJAX запрос не подхватывает куку. Домен один и тот же?
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089060
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
Аутентификация у меня через куки идет:

Значит у тебя AJAX запрос не подхватывает куку. Домен один и тот же?


Домен не меняется, у меня и фронт и бэк на одном веб-сервере крутятся - IIS.

Что нужно сделать, чтобы AJAX запрос куки подхватывал?
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089062
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat,
Если гружу все остальные страницы, в том числе страницу с которой вызываю запрос на загрузку, то куки есть и они уходят на сервер:
автор.AspNetCore.Mvc.CookieTempDataProvider {…}
expires "1970-01-01T00:00:00.000Z"
httpOnly true
path "/collectvoters"
samesite "Lax"
value ""


{
".AspNetCore.Antiforgery.hCiIJBAN4bs": "CfDJ8E_6DbN7jdpPgMFyLYN6J0OzXNlVDlQXAAGQLHvQZT40fBZ3ATVNxQ4rFp2UhszNZ07_Nlq-rtllU49i1z-zXVspnxaf1YHTIns_gfmquSuStAZv_f5NxMh_U3SY3Bm2DnO0_R87bzoU9I45059r8TE",
".AspNetCore.Cookies": "CfDJ8E_6DbN7jdpPgMFyLYN6J0MJ8zAjmvH8ot7AsdqAusmnYZIzGMuRKrbxnXIO9IyW4kWGbnlOnRY6qs4xEF0ECVmod-VHVqQz6I-z41Whi2eEYBqHSpXmjo2xwz5aqoBms-aYoLCRnrqiy5jxICkOCVX2lM79f7XoMKT8L1nBss7P1WbuN-aZ4-BzCkWqX5238bOI1s3ugjotPuMIDiejb4RiF9vKWzAYEaPj5UALZkueuFmVNWvA0u9H46o79ZQ-onA96vBnOLaDLNgQ0bKs2dRRy7d6aNzCRXl9EBsd7iN-K_j3pe2HsY3dFLehv6GGaTMaBAB5uKKjvhImne_5BFg6UDbjKa6Tt1LcZhP7HKu6FL1PqqTTVaAP71hIkqWgmVZBa7c6FygjWLoiDA6VOx7eUxNV0WkZkt2zIOdBL61jMyIsv55QiPSblQnGY4_WwA"
}

{
".AspNetCore.Antiforgery.hCiIJBAN4bs": "CfDJ8E_6DbN7jdpPgMFyLYN6J0OzXNlVDlQXAAGQLHvQZT40fBZ3ATVNxQ4rFp2UhszNZ07_Nlq-rtllU49i1z-...",
".AspNetCore.Cookies": "CfDJ8E_6DbN7jdpPgMFyLYN6J0MJ8zAjmvH8ot7AsdqAusmnYZIzGMuRKrbxnXIO9IyW4kWGbnlOnRY6qs4xEF0ECVmod-VHVqQz6I-..."
}


а вот конкретно при запросе на загрузку вы правы куков нет вообще
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089074
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут есть обсуждение проблемы, может быть поможет: https://stackoverflow.com/questions/2870371/why-is-jquerys-ajax-method-not-sending-my-session-cookie
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089150
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнении запроса на IISExpress cookie уходят с запросом:

автор.AspNetCore.Antiforgery.sTgLludoNYM CfDJ8OpqRmzr-
.AspNetCore.Cookies CfDJ8OpqRmzr-59AkS4cNHyMCT1Do

Но cookie с сервера не возвращаются.
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089324
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Но cookie с сервера не возвращаются.

Они и не должны возвращаться, если не включена опция "SlidingExpiration"

Проверь, совпадает ли этот cookie с тем, что возвращается сервером при аутентификации.
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40089364
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir
Но cookie с сервера не возвращаются.

Они и не должны возвращаться, если не включена опция "SlidingExpiration"

Проверь, совпадает ли этот cookie с тем, что возвращается сервером при аутентификации.


Да, совпадают, IISExpress все норм:

cookieRequest Login
.AspNetCore.Antiforgery.sTgLludoNYM
CfDJ8OpqRmzr-59AkS4cNHyMCT1R_ABDUkgfIXGSTnF_NT_clqr2xeAN46jxCce-E5szcj4QlNAC0lWdlymlUwYTf8htzXwBwkgjXALBJSpngbcvRbJv2VosgaZENiKP0I0E2QYK4GWiHc5UbgzYbCDFF74 localhost

Response Login
.AspNetCore.Cookies
CfDJ8OpqRmzr-59AkS4cNHyMCT3YSd5slt2PnEQa3gIPJma_cq3M5KhdBFf8dLLM8GU4Xc8w7aKssJD00iXqIra6Re4k_0VXouZtCSnqGfDbTMavEVKI1WYc_Hgz5zAQOoRWRmvNyNP9TzXUTOkrfH0po0JrKiNTtAZr1ZCVswyVl4ifzaJD0MkN5CXPCAbgB6FkHvZDpfxfvuBtCH8Gejq1-U_eNHjr8ep0DQ49aRbDSzo79nvFCPMw0DMpxK9pZqaqxFHZSVU13nQym71V-IgiXyhB-gKkwnYmMpJ7anZ1DO7t4kmN38vEj532Wf2ZrHJLZ-IBPVYkwAHXmiQ42r9qBv8XRteMPmnUMBYIWTXnBBVy4VqXCRX1tikwXAsLUv_Ypz46roCWqbiwIqfhWBh0SmBP41GMxkDBvi5puOVi_tlI localhost



Request UploadFiles - страница с которой отправляется запрос на загрузку (на которой нажимается кнопка)
.AspNetCore.Antiforgery.sTgLludoNYM
CfDJ8OpqRmzr-59AkS4cNHyMCT1R_ABDUkgfIXGSTnF_NT_clqr2xeAN46jxCce-E5szcj4QlNAC0lWdlymlUwYTf8htzXwBwkgjXALBJSpngbcvRbJv2VosgaZENiKP0I0E2QYK4GWiHc5UbgzYbCDFF74 localhost
.AspNetCore.Cookies
CfDJ8OpqRmzr-59AkS4cNHyMCT3YSd5slt2PnEQa3gIPJma_cq3M5KhdBFf8dLLM8GU4Xc8w7aKssJD00iXqIra6Re4k_0VXouZtCSnqGfDbTMavEVKI1WYc_Hgz5zAQOoRWRmvNyNP9TzXUTOkrfH0po0JrKiNTtAZr1ZCVswyVl4ifzaJD0MkN5CXPCAbgB6FkHvZDpfxfvuBtCH8Gejq1-U_eNHjr8ep0DQ49aRbDSzo79nvFCPMw0DMpxK9pZqaqxFHZSVU13nQym71V-IgiXyhB-gKkwnYmMpJ7anZ1DO7t4kmN38vEj532Wf2ZrHJLZ-IBPVYkwAHXmiQ42r9qBv8XRteMPmnUMBYIWTXnBBVy4VqXCRX1tikwXAsLUv_Ypz46roCWqbiwIqfhWBh0SmBP41GMxkDBvi5puOVi_tlI localhost

Response UploadFiles - страница с которой отправляется запрос на загрузку (на которой нажимается кнопка)
.AspNetCore.Mvc.CookieTempDataProvider localho



Request UploaDataFromdFile - отправка запроса на загрузку
.AspNetCore.Antiforgery.sTgLludoNYM
CfDJ8OpqRmzr-59AkS4cNHyMCT1R_ABDUkgfIXGSTnF_NT_clqr2xeAN46jxCce-E5szcj4QlNAC0lWdlymlUwYTf8htzXwBwkgjXALBJSpngbcvRbJv2VosgaZENiKP0I0E2QYK4GWiHc5UbgzYbCDFF74 localhost
.AspNetCore.Cookies
CfDJ8OpqRmzr-59AkS4cNHyMCT3YSd5slt2PnEQa3gIPJma_cq3M5KhdBFf8dLLM8GU4Xc8w7aKssJD00iXqIra6Re4k_0VXouZtCSnqGfDbTMavEVKI1WYc_Hgz5zAQOoRWRmvNyNP9TzXUTOkrfH0po0JrKiNTtAZr1ZCVswyVl4ifzaJD0MkN5CXPCAbgB6FkHvZDpfxfvuBtCH8Gejq1-U_eNHjr8ep0DQ49aRbDSzo79nvFCPMw0DMpxK9pZqaqxFHZSVU13nQym71V-IgiXyhB-gKkwnYmMpJ7anZ1DO7t4kmN38vEj532Wf2ZrHJLZ-IBPVYkwAHXmiQ42r9qBv8XRteMPmnUMBYIWTXnBBVy4VqXCRX1tikwXAsLUv_Ypz46roCWqbiwIqfhWBh0SmBP41GMxkDBvi5puOVi_tlI localhost


Response UploaDataFromdFile
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40090657
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,

Ну как там, что-нибудь прояснилось?
...
Рейтинг: 0 / 0
При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
    #40090716
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vlad__i__mir,

Ну как там, что-нибудь прояснилось?


Нет, какая-то аномалия
Есть предположение что это из-за того что представление и контроллер сформирован не по сущности из БД, а приложение mvc, но это прямо уже какой-то маразм, в общем вообще не понятно.

При этом у меня есть другие страницы с которых отправляю POST запросы и подгружаю данные с них и там все норм
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / При попытке загрузить данные из файла в базу данных сервера выдает ошибку -401 Unauthorize
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]