2013-01-17 37 views
1

我想調試一個使用.NET 4.5版本的WIF來提供用戶身份的ASP.NET MVC應用程序。由於這些聲明是由特定於該用戶的遠程STS生成的,因此很難在開發環境中測試給定用戶接收哪些聲明。如何查看ASP.NET跟蹤中當前用戶的聲明?

我想要的是一種機制,可以讓我在使用系統時看到用戶的聲明。我立即想到ASP.NET WebForms跟蹤系統作爲跟蹤信息的來源和顯示它的便捷機制,但我不知道ASP.NET MVC中的等價物。

在使用測試儀進行調試時,是否有任何內置機制將此信息公開給我?

+0

您是否在問如何將此診斷數據轉儲到屏幕上(即關於跟蹤框架的Q)或者您是否在問如何獲取想要轉儲到屏幕的值(即關於訪問STS值的Q) ? – MatthewMartin

+0

有一點。這些聲明只對用戶和我的情況很有價值,最容易通過向所屬用戶顯示聲明來完成。我可以寫一個定製的視圖,並利用「ClaimsPrincipal」來完成我所需要的一切,但是有沒有現成的管道可以以標準化的方式爲我完成這項工作? –

回答

0

好的 - Trace.Write數據顯示在調試時在VS的輸出窗口中。也許這就夠了。您還可以爲System.IdentityModel跟蹤源添加跟蹤偵聽器,以更深入地瞭解令牌/聲明處理。

+0

恐怕不夠好。如果我的用戶擁有Visual Studio,我只需附加一個調試器。需求是查看用戶輸出中的信息,如ASP.NET WebForms跟蹤。 –

1

選項

Glimpse - 就像類固醇Web窗體頁內trage /的trace.axd。雖然適用於MVC應用程序,但幾乎沒有提供網絡表單(雖然團隊一直承諾大事,但這是一個值得關注的領域)。

trace.axd - Trace.Write輸出應該出現在這裏,我從來沒有試圖在繁忙的服務器上運行它。訪問trace.axd應該適用於mcv應用程序,不確定inpage trace是否適用於mvc--我猜不是,但我從未嘗試過。 「有些痕跡」%> - 我有時會將診斷信息轉儲到所有屏幕上,並將其放在頁腳中,或將其放在頁腳中,然後將文本變成白色,以便我可以指導用戶如何操作看到它並複製它們,但它們通常不會看到它。

System.Diagnostics TraceSource和相關類 - 它比Trace.Write更好,但是如果你使用跟蹤很多。不過,有些情況下,您無法假定您最喜愛的跟蹤/日誌記錄庫將可用。如果我要使用它,我會編寫一個自定義偵聽器,並將用戶的診斷數據寫入數據庫,或者已經存在文件的偵聽器。

Log4Net - 跟蹤/日誌記錄框架。支持寫入各種場所 - 控制檯,數據庫,文件等。具有較少的設計缺陷即System.Diagnostics,但需要增加對應用程序的依賴性。使用與System.Diagnostics相同的內容 - 登錄到文件或數據庫,然後檢查用戶的STS值。

我從來沒有使用WIF或STS的好運氣,但我想象漂亮的打印對象,它的屬性對於任何對象都是一樣的。如果您需要知道如何從中提取特定信息,您可能需要單獨發佈WIF/STS問題。

相關問題