Let's採取通常的aspx頁面,〜/管理/ template.aspx渲染頁面到自定義輸出
管理文件夾允許例如只有「管理員」角色。
現在我不想像往常一樣運行template.aspx,但我希望從活動進程中調用它。 假設我在〜/ admin/buildMyStuff.aspx上,那裏我正在收集一些數據,現在我有一些querystring,就像「?do = this $ andDo = that $ index = {0}」。現在我希望使用這個模板循環訪問我的數據並生成我的輸出,然後將它放在一個靜態html或文本文件或其他東西中。
我該怎麼做? 將其作爲新請求調用,等待響應?我必須做什麼,它是在「管理」角色下運行,還是自動執行,因爲我已經是管理員了?
或者還有另一種可能性,允許我運行模板頁面並指定我的自定義htmltextwriter作爲輸出嗎?
編輯:
public static string RenderPageAndGetHtml(string pageUrl, string pageQuery)
{
var sw = new StringWriter();
var wr = new SimpleWorkerRequest(pageUrl, pageQuery, sw);
HttpRuntime.ProcessRequest(wr);
sw.Close();
return sw.ToString();
}
這是解決方案。
但是:
看來,得到的SimpleWorkerRequest錯誤
以下情況:
〜/ Default.aspx的失敗
/default.aspx失敗
default.aspx Ok
EN/Default.aspx的失敗
/en/default.aspx失敗
〜/ EN/Default.aspx的失敗
編輯:
好吧,我實現了我的自定義的HttpWorkerRequest。現在它可以工作...
謝謝
這聽起來像正是這一點我正在尋找使用反斜線。有什麼我必須關心的,一些依賴關係,如httpcontext,它是通過httpmodules?如果我使用你的方法,如何看待用戶身份? – Luke 2011-01-31 15:04:37
嗯,這是一個很好的問題 - 我不確定。我很少使用這個功能,現在我無法測試它。它是當前的ApplicationPool用戶或Web用戶。你能檢查一下嗎?順便說一句,我改變了我的答案,因爲Utf8WorkerRequest是一個自建的解決方案,你必須使用SimpleWorkerRequest。 – Marc 2011-01-31 17:24:35