Безопасный веб-метод публикации API с именем пользователя и паролем - PullRequest
0 голосов
/ 10 октября 2018

У меня есть служба веб-API, размещенная в Microsoft Azure.Мне нужен определенный метод POST, чтобы он был доступен только с одним уникальным именем пользователя и паролем.

Я понимаю, что метод [Authorize] выполняет аутентификацию на основе токенов, но он не привязан к одному имени пользователя и паролю.В моем приложении веб-интерфейс также выполняет аутентификацию при входе в систему, поэтому любой, кто регистрируется, может получить доступ к этому методу публикации, если я не ошибаюсь.(Пожалуйста, исправьте меня, если я ошибаюсь)

Я новичок в этом, не могли бы вы указать мне правильный путь, пожалуйста.

Это мой метод публикации в WebAPI, к которому я хочу обеспечить безопасный доступ с определенным уникальным именем пользователя и паролем:

    [AllowAnonymous]
    [HttpPost, Route("send")]
    public async Task<NotificationOutcome> Post([FromBody]string message)
    {

        string hubName = "myHub";
        string hubNameDefaultShared = "myHubNameDefaultShared";

        NotificationHubClient hub = NotificationHubClient
                        .CreateClientFromConnectionString(hubNameDefaultShared, hubName, enableTestSend: true);

        string installationId = string.Empty;

        var templateParams = new Dictionary<string, string>
        {
            ["messageParam"] = message
        };

        NotificationOutcome result = null;
        if (string.IsNullOrWhiteSpace(installationId))
        {
            result = await hub.SendTemplateNotificationAsync(templateParams).ConfigureAwait(false);
        }
        else
        {
            result = await hub.SendTemplateNotificationAsync(templateParams, "$InstallationId:{" + installationId + "}").ConfigureAwait(false);
        }

        return result;
    }

И вот как я сейчас получаю доступ к методу POST:

var client = new RestClient("myWebApiRouteName");
            var request = new RestRequest(Method.POST);
            request.AddHeader("Postman-Token", "46c23eba-8ca6-4ede-b4fe-161473dc063a");
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Content-Type", "application/json");
            request.AddParameter("undefined", messageBody, ParameterType.RequestBody);

            try
            {
                IRestResponse response = client.Execute(request);
                Console.WriteLine(response.Content);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...