我尝试使用控制器上的经典[Autorize]属性来保护我的Web API 2。这很成功,现在我无法访问我的API!太棒了!
我有一个Xamarin应用程序,我从中使用应用程序的REST服务,并在其上实现了Microsoft Graph Identity提供程序。
因此,一旦我通过Microsoft Graph登录应用程序,我就会使用该API。
有人能指出我这样做的正确文件或向我解释我应该如何进行?
我猜测有一种方法可以使用微软图API提供的用户令牌,但我看不清楚。
提前谢谢。
编辑: 在被要求后,从API中添加一些代码:
Startup.Auth.cs:
public void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"]
});
}
从Xamarin应用程序中,我这样登录:
public async Task Signin()
{
try
{
if (App.IdentityClientApp != null)
{
var authenticationResult = await App.IdentityClientApp.AcquireTokenAsync(App.ClientScope);
this.UserToken = result.Token;
this.expiration = result.ExpiresOn;
}
else
Debug.WriteLine("Identity client is null");
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
从技术上讲,我应该将令牌作为AuthenticationHeaderValue提供给" Bearer"键。 但我不确定这是否正确。