#c# #azure #asp.net-core #azure-functions
#c# #azure #asp.net-core #azure-функции
Вопрос:
Ниже приведены функции Azure через C # с Visual studio. Проблема в том, что req.Form
используется для создания RequestDto
объекта, подобного приведенному ниже:
public class Function1
{
[FunctionName("Token")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
HttpRequest req)
{
var reqDto = new RequestDto
{
UserName = req.Form["username"],
Password = req.Form["password"],
ClientId = req.Form["client_id"],
ClientSecret = req.Form["client_secret"]
};
...
}
}
Возможно ли использовать привязку модели, которая RequestDto
автоматически заполняется ASP.NET ЯДРО 2.x, как показано ниже?
[Route("api/[controller]")]
[ApiController]
public class ConnectController : Controller
{
[HttpPost("token")]
[Consumes("application/x-www-form-urlencoded")]
public async Task<IActionResult> Token([FromForm]RequestDto request)
{
...
}
}
public class RequestDto
{
[FromForm(Name="client_id")]
public string ClientId { get; set; }
[FromForm(Name = "client_secret")]
public string ClientSecret { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
Комментарии:
1. Чего вы хотите достичь? Есть ли какие-либо проблемы с вызовом
Token
? Поделитесь с нами дополнительной информацией о вашей проблеме.2. Я хочу, чтобы запрос был автоматически заполнен, как во втором примере, при использовании ASP.NET ЯДРО.
3. Как вы будете запрашивать действие токена?
4. это не имеет отношения к теме
5. Что касается привязки, то она состоит из двух связанных частей: параметра действия и запроса клиента. Без информации, связанной с запросом клиента, как мы можем поделиться тем, как привязать модель?
Ответ №1:
Я думаю, что то, что вы ищете, — это пользовательская привязка или вызываемое Microsoft: Azure Functions / WebJobs binding extension. Как это сделать, объясняется здесь: https://github.com/Azure/WebJobsExtensionSamples
Комментарии:
1. Таким образом, для этого нет встроенной поддержки.
2. Насколько мне известно, нет.