Web API 2 - 授权经过身份验证的移动用户

时间:2017-06-06 08:36:34

标签: azure xamarin.forms asp.net-web-api2 microsoft-graph

我尝试使用控制器上的经典[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"键。 但我不确定这是否正确。

0 个答案:

没有答案