3

我正在尝试 Microsoft 在此处发布的 Azure Active Directory 示例之一:https ://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet

我设法搞砸了 TodoListService 的 web.config 中的受众值,并在调用服务时得到了 401 Unauthorized 响应。

问题是,我花了太长时间才弄清楚出了什么问题。在调试器中运行它并没有在输出窗口中产生任何有用的跟踪语句。事件查看器中也没有任何事件。

我可以打开任何配置来帮助我更快地找到它吗?是否有可用于调试的具有日志记录或诊断功能的中间件?

我想我可以从GitHub获取源代码并尝试调试问题,但这并不方便。有什么我想念的吗?

4

3 回答 3

4

在 ADAL v3 中,您创建一个实现 IAdalLogCallback 的类:

public class AdalLoggerCallback : IAdalLogCallback
{
  public void Log(LogLevel level, string message)
  {
    Console.Write(message);
  }
}

然后,设置静态 LoggerCallbackHandler 对象的 Callback 属性:

LoggerCallbackHandler.Callback = new AdalLoggerCallback();
于 2017-01-23T17:19:24.257 回答
3

您可以使用启用记录器

Trace.Listeners.Add(new ConsoleTraceListener()); AdalTrace.LegacyTraceSwitch.Level = TraceLevel.Verbose;

此处提供完整详细信息https://github.com/AzureAD/azure-activedirectory-library-for-dotnet#logs

于 2015-04-21T03:00:21.257 回答
3

虽然接受的答案确实打开了 ADAL(客户端库)的跟踪,但我遇到了一个问题,我需要为 OWIN 身份验证中间件启用跟踪。

插入此中间件时,我的代码刚刚从我的服务中获得授权:

public void Configuration(IAppBuilder app)
{
    app.UseWindowsAzureActiveDirectoryBearerAuthentication(
        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
    {
        Audience = ConfigurationManager.AppSettings["Audience"],
        Tenant = ConfigurationManager.AppSettings["Tenant"]
    }
}

可以通过将以下部分添加到项目的 web.config 来打开日志记录:

<configuration>
  <system.diagnostics>
    <switches>
      <add name="Microsoft.Owin" value="Verbose" />
    </switches>
  </system.diagnostics>
</configuration>

默认情况下,输出将显示在调试控制台窗口中,但您可以通过添加跟踪侦听器来更改它。我在这里找到了一篇内容丰富的文章。

结果我忘了关闭多租户服务的颁发者验证。

于 2015-10-22T03:05:43.880 回答