1

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

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

在使用测试仪进行调试时,是否有任何内置机制可以向我公开这些信息?

4

2 回答 2

1

选项

一瞥- 就像类固醇上的 webform inpage trage/trace.axd。适用于 MVC 应用程序,但几乎没有提供 web 表单(尽管团队一直在承诺大事,但这是一个值得关注的领域)。

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

<% "Some trace" %> -- 我有时会将诊断信息转储到所有屏幕并将其放在页脚中,或者将其放在页脚中然后将文本设置为白底白字,这样我就可以指导用户如何查看和复制它,但他们通常不会看到它。

System.Diagnostics TraceSource 和相关的类——它比 Trace.Write 更好,但如果你经常使用 trace,它会有一些缺陷。不过,在某些情况下,您不能假设您最喜欢的跟踪/日志库将可用。如果我要使用它,我会编写一个自定义侦听器并将用户的诊断数据写入数据库或文件,文件的侦听器已经存在。

Log4Net——一个跟踪/日志框架。支持写入各种位置——控制台、数据库、文件等。与 System.Diagnostics 相比,设计缺陷更少,但不需要向您的应用程序添加更多依赖项。与 System.Diagnostics 使用相同 - 登录到文件或数据库并在那里检查您的用户 STS 值。

我从来没有幸运地使用过 WIF 或 STS,但我想漂亮地打印一个对象及其属性对于任何对象都是相同的。如果您需要知道如何从中提取特定信息,您可能需要单独发布 WIF/STS 问题。

于 2013-01-21T15:18:31.120 回答
0

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

于 2013-01-17T20:00:00.987 回答