Rin*_*esh 4 c# azure asp.net-web-api asp.net-webhooks azure-functions
我正在尝试使用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();
Run Code Online (Sandbox Code Playgroud)
Azure Function在普通的Web应用程序中运行,因此您可以在那里做任何事情.假设您使用的是C#,函数体可能看起来像
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
var response = await client.GetAsync(url);
var content = await response.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11271 次 |
最近记录: |