Это из проекта WebAPI
public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
foreach (KeyValuePair<string, string> property in context.Properties.Dictionary)
{
context.AdditionalResponseParameters.Add(property.Key, property.Value);
}
return Task.FromResult<object>(null);
}
Это из контроллера MVC
HttpResponseMessage response = httpClient.PostAsync("http://localhost:30760/Token", encodedRequest).Result;
У меня вопрос, возвращение return Task.FromResult<object>(null);
дает пустую страницу в веб-браузере, НО мне нужен возврат в контроллер, в
HttpResponseMessage response= httpClient.PostAsync("http://localhost:30760/Token", encodedRequest).Result;
Так чего же мне не хватает, учитывая, что у меня есть имя пользователя и пароль, которые я не собираюсь здесь указывать, потому что это не проблема, я думаю.
Контроллер
public class SupplierController : Controller
{
string Baseurl = "http://localhost:30760/TryAPI";
public async Task<ActionResult> Index()
{
using (var httpClient = new HttpClient())
{
var tokenRequest =
new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("grant_type", "password"),
new KeyValuePair<string, string>("username","tested@gmail.com"),
new KeyValuePair<string, string>("password", "P@ssw0rd")
};
HttpContent encodedRequest = new FormUrlEncodedContent(tokenRequest);
HttpResponseMessage response = httpClient.PostAsync("http://localhost:30760/Token", encodedRequest).Result;
var responseToken = response.Content.ReadAsStringAsync().Result;
var convertedResponseToken = JsonConvert.DeserializeObject<List<string>>(responseToken);
// Store token in ASP.NET Session State for later use
// Session["ApiAccessToken"] = convertedResponseToken["AccessToken"];
}
List<string> EmpInfo = new List<string>();
using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
//Define request data format
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Session["ApiAccessToken"].ToString());
//Sending request to find web api REST service resource GetAllEmployees using HttpClient
HttpResponseMessage Res = await client.GetAsync("api/values");
//Checking the response is successful or not which is sent using HttpClient
if (Res.IsSuccessStatusCode)
{
//Storing the response details recieved from web api
var EmpResponse = Res.Content.ReadAsStringAsync().Result;
//Deserializing the response recieved from web api and storing into the Employee list
EmpInfo = JsonConvert.DeserializeObject<List<string>>(EmpResponse);
}
//returning the employee list to view
return View(EmpInfo);
}
}
}
}