所以我相信我的API服务应该没问题,因为我可以通过Swagger返回结果?我是从WPF项目调用的。我启动程序,它要求我登录,然后继续,并告诉我,我没有权限。
我对WebAPI2非常环保,并认为我可能只是错误地构建了我的呼叫。我似乎从我的网站上正确地获得了一个令牌,唯一的问题是当我尝试实际调用API获取数据时。
这是我的代码:
let coordinates = CLLocationCoordinate2D(latitude: milatitud!, longitude: milongitud!)
let annotation = MKPointAnnotation()
annotation.coordinate = coordinates
annotation.title = "JuanJo"
self.map.addAnnotation(annotation)
//print ("4444444444")
for annotation: MKAnnotation in self.map.annotations {
let anView = self.map.view(for: annotation)
if (anView != nil)
{
let url = URL(string: link!)
self.imagen.af_setImage(withURL: url!, placeholderImage: UIImage(named: "usuarioprevia.jpeg"), filter: CircleFilter(), imageTransition: .crossDissolve(0.5), runImageTransitionIfCached: true, completion: nil)
anView?.image = "image downloaded from firebase with alamofireimage"
}
编辑:或许有助于注意我使用的是由Rest API调用的DataAPI,其余的API由Azure AD保护。
编辑:我正在从便携式类库中调用。
编辑:好吧,我正在接受身份验证,但似乎没有任何区别。如果我完全删除了Auth标头,我会得到相同的结果
答案 0 :(得分:1)
对于受Azure AD保护的Web API,令牌似乎不正确。请检查令牌中的aud
声明,该声明应与您在Web API项目中配置的Audience
匹配。您可以通过解析此site中的令牌来检查aud
声明。
如果您仍然遇到问题,请分享您保护网络API的代码。
如果您使用如下所示的 Express 模式,则需要使用与网络API相关联的应用获取access_token。
如果您使用高级模式,我们还应该使用该应用获取令牌,而ResourceUri应该与您在允许的令牌听众中配置的值相匹配下面: