У меня есть проект веб-API Asp.net, который имеет несколько методов CRUD.Asp.net Web Api Запрос перенаправления
В дополнение к этим методам, я хочу добавить службу авторизации, которая считывает заголовок Authorization
и предотвращает доступ пользователей к ресурсам (если они не авторизованы).
// Method on internal IP Project
public class InternalController : ApiController
{
public void Create(CreateRequest request)
{
// implement the method
}
}
// Method on public IP Project
public class ExternalController : ApiController
{
public async Task Create(CreateRequest request)
{
// validate Authorization header and throw exception if not valid
using (HttpClient client = new HttpClient())
{
string parameters = string.Format("param1={0}¶m2={1}", request.Param1, request.Param2);
client.BaseAddress = new Uri("http://192.168.1.1/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync("api/internal/create?" + parameters);
response.EnsureSuccessStatusCode();
}
}
}
Есть ли способ «перенаправлять» запрос от внешнего API на внутренний API более легко?
Прямо сейчас, мне нужно вручную заново создать все параметры, которые я получаю в ExternalAPI, и отправить их в InternalAPI, даже если они одинаковы.
Могу ли я сделать HttpClient
автоматически отправить объект HttpRequestMessage (Request)
, который у меня есть в приложении ExternalAPI?
ли ExternalController' на том же веб-проект 'InternalController' и'? – haim770
Нет, это разные проекты – Catalin