2017-01-06 160 views
0

我想這應該是相當簡單的,但我不能因爲某些原因找到這對谷歌的任何訪問當前請求頭

我有一個的WebAPI 2.0控制器(型號:ApiController),可以讀取的讀取請求頭

Request.Headers.GetValues("SomeHeader"); 

在同一個項目中,我有另一個類(AccessFactory),我想從訪問頭。

原因是我不想爲每個函數調用執行相同的代碼,以便在實際需要的地方讀取所有需要的標題。

+0

將請求對象或標頭值的相關子集傳遞給DLL方法是否合理?據推測他們是在告訴它關於當前的情況?如果此方法在DLL中,是否可以在非Web應用程序中重用?如果是這樣,那麼傳遞值就可能是有意義的,而不是依賴於Web特定的對象。不知道,取決於你的設計。但我認爲在一個單獨的項目中,你仍然可以訪問當前的HTTP上下文(以及請求頭),如果你想這樣做,那麼'System.Web.HttpContext.Current'就是你需要的。 – ADyson

+0

完成訣竅很好謝謝你。請回答,以便我可以接受。這個工廠是底層基礎架構的超級集合,只會在Web部件中使用,因此它可以安全地綁定到Web上:) – Jester

+0

完成。我已經留下了關於網絡內容的評論,僅供未來的讀者閱讀,但可以隨意忽略它:-) – ADyson

回答

0

在一個單獨的項目/ DLL中,仍然可以使用System.Web.HttpContext.Current對象訪問當前HTTP上下文(以及請求標頭)。另外,我想補充一點,如果這個DLL是爲了在不同的應用程序中重複使用,那麼考慮它是否會用在非web應用程序上,如果是的話,你應該避免在web上進行依賴像這樣的背景。相反,您可能會考慮將所需的標題值作爲簡單類型或定製對象傳遞。這樣他們可以指示上下文,但非Web應用程序可以傳遞它自己的等效上下文值。但是,這是一個單獨的設計決定,具體取決於具體目的以及您打算如何在未來使用該DLL庫。