我在使用Azure AD身份验证时遇到了一个奇怪的问题。
我们在项目中使用启用CORS的web api(在web.config中指定了起源,这些起源由自定义属性提取,此属性用于控制器)。
使用adal.js
完成Athorization部分代码如下:
startup.cs
using Microsoft.Owin;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
[assembly: OwinStartup(typeof(test.testapi.WebApi.Startup))]
namespace Test.testapi.WebApi
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
Startup.auth.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Security.Claims;
using Microsoft.Owin.Security.ActiveDirectory;
using System.Configuration;
using Owin;
using System.Net;
namespace test.testapi.WebApi
{
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
//Following line is not required if you are using HTTPS calls to APIs
//ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
});
}
}
}
当控件转到startup.auth.cs时,它会给出System.Net.Http.HttpRequestException Error
现在问题是当我在我的本地开发环境中工作时我从来没有遇到过这个问题(总是经过身份验证很好)但QA在QA服务器上遇到了这个问题,所以我们开始从我的机器上托管web api,之后我也开始了现在这个问题太频繁了。
如果有人遇到同样的问题,这是什么问题。