【发布时间】:2017-08-01 02:13:15
【问题描述】:
我正在尝试使用 Azure 函数开发以下场景。
我已经开发了处理数据库相关操作的 Asp.Net Web API。现在,我想实现一个类似调度程序的功能,它每天运行一次,并从数据库中清理垃圾数据。我已经在我的 Web API 中为此创建了一个端点,但我想定期执行它,所以我想使用 Azure 函数的 TimerTrigger 函数来实现调度程序,有没有办法在 TimerTrigger 函数中调用我的 Web api 的端点。
如何在 Azure 函数中处理我的 api 身份验证?
谢谢
更新:
根据 mikhail 的回答,最后我使用以下代码获得了令牌:
var client = new HttpClient();
client.BaseAddress = new Uri(apirooturl);
var grant_type = "password";
var username = "username";
var password = "password";
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("grant_type", grant_type),
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password)
});
var token = client.PostAsync("token", formContent).Result.Content.ReadAsAsync<AuthenticationToken>().Result;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.token_type, token.access_token);
var response = await client.GetAsync(apiendpoint);
var content = await response.Content.ReadAsStringAsync();
【问题讨论】:
-
您如何/什么添加了引用以便可以使用
AuthenticationToken?谢谢。 -
@SkorunkaFrantišek 我添加了
using System.Net.Http;,因为它是HttpClient类的DefaultRequestHeaders属性的一部分,我们可以在System.Net.Http命名空间下找到HttpClient。
标签: c# azure asp.net-web-api azure-functions asp.net-webhooks