如何在ASP.NET跟踪中查看当前用户的声明?

时间:2013-01-17 15:43:46

标签: asp.net asp.net-mvc-4 wif trace

我正在尝试调试使用.NET 4.5版本的WIF来提供用户身份的ASP.NET MVC应用程序。由于这些声明是由特定于该用户的远程STS生成的,因此很难测试在开发环境中为给定用户接收哪些声明。

我想要的是一种机制,可以让我在使用系统时通过查看他们的肩膀来查看用户的声明。我立即想到ASP.NET WebForms跟踪系统作为跟踪信息的来源和显示它的方便机制,但我不知道ASP.NET MVC中的等效物。

在使用测试人员进行调试时,是否有任何内置机制向我公开此信息?

2 个答案:

答案 0 :(得分:1)

选项

Glimpse - 就像类固醇上的webform inpage trage / trace.axd一样。适用于MVC应用程序,虽然很少提供webforms(团队一直承诺大事,但这是一个值得关注的领域)。

trace.axd - Trace.Write输出应该出现在这里,我从未试图在繁忙的服务器上运行它。访问trace.axd应该适用于mcv应用程序,不确定inpage trace是否适用于mvc--我猜不会,但我从未尝试过。

<%“一些跟踪”%> - 我有时会将诊断信息转储到所有屏幕并将其放入页脚,或者将其放入页脚,然后将文本设置为白色,这样我就可以指示用户如何查看并复制它,但它们通常不会看到它。

System.Diagnostics TraceSource和相关类 - 它比Trace.Write更好,但是如果你使用trace 很多,它会有一些缺陷。但是,有些情况下您无法假设您最喜欢的跟踪/日志记录库可用。如果我要使用它,我会编写一个自定义监听器并将用户的诊断数据写入数据库,或者文件中已存在监听器。

Log4Net - 跟踪/日志记录框架。支持写入各种位置 - 控制台,数据库,文件等.System.Diagnostics具有较少的设计缺陷,但需要为您的应用添加更多依赖性。与System.Diagnostics一样使用 - 记录到文件或数据库并检查用户的STS值。

我从未有过使用WIF或STS的好运,但我想相当于打印一个对象,它的属性对于任何对象来说都是一样的。如果您需要知道如何从中提取特定信息,您可能需要单独发布WIF / STS问题。

答案 1 :(得分:0)

Well - Trace.Write数据在调试时出现在VS的输出窗口中。也许那就够好了。您还可以为System.IdentityModel跟踪源添加跟踪侦听器,以便更深入地了解令牌/声明处理。