加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

从Azure功能调用Asp.Net Web API端点

发布时间:2020-12-16 06:40:20 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用Azure功能开发以下场景. 我开发了Asp.Net Web API来处理数据库相关的操作.现在,我想实现一个类似于日常运行的调度程序,它将清理数据库中的垃圾数据.我已经在我的Web API中创建了一个端点,但我想定期执行它,所以我想用Azure函数的TimerTrigger
我正在尝试使用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),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();

解决方法

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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读