Мне нужно сделать страницу с кнопкой, которая заполняет определенную текстовую область данными из базы данных. Однако мне нужно, чтобы он также требовал прав администратора.
Можно ли использовать метод API, который не требует кредитов, а вместо этого сеанс идентификации? В идеале что-то, что получает HttpContext.User
?
Я ничего не знаю о JavaScript, мне удалось собрать эту штуку:
const url = '/api/clients/';
function getItems() {
fetch(url + document.getElementById('input').value)
.then(response => response.json())
.then(data => _displayItems(data));
}
function _displayItems(arrayOfResults) {
const textbox = document.getElementById('textbox');
textbox.value = "";
arrayOfResults.forEach(json => {
textbox.value += json.deviceIdentifier + "\n";
});
}
У меня конечная точка API в http://localhost/api/clients/{string}
, который выполняет запрос к базе данных и работает должным образом. Но я не могу позволить кому-либо получить доступ к этим данным, и мне трудно понять, как заставить пользователя:
- не предоставлять свои учетные данные
- иметь возможность использовать его с минимальными усилиями (ie. Просто нажмите кнопку и получите результаты)
- не сможете использовать эту конечную точку, пока не вошли в систему на веб-сайте
Обычно я просто использую эту строку, чтобы получить пользователь, который пытается получить доступ к контроллеру:
var currentUser = await _userManager.FindByNameAsync(_userManager.GetUserName(HttpContext.User));
и go оттуда. Но когда мой JS скрипт обращается к API, он не предоставляет способ проверки с использованием HttpContext
, исходя из того, что я вижу.