[問題] ASP.Net有辦法提高執行權限嗎?

看板C_Sharp作者 (復讎の業火)時間14年前 (2009/11/12 15:24), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/2 (看更多)
各位先進大大好: 小弟做了一個ASP.Net網站,需要存取網站以外的應用程式, (Google Desktop,因為想用它來實作全文檢索功能) 由於google desktop可利用httprequest來操作,所以沒有太大麻煩, 問題是它裡頭有個安全金鑰必須透過讀取Registry才能拿到, 這個Registry會因使用者不同而異,當然也就影響了網站的移植性, 所以不能寫死。 雖然C#的現成函式能夠操作讀取Registry,但我發現ASP.Net的權限不足, 於是寫好的code被擋掉了。 我暫時想出來的方法是: 寫一隻console程式讀取registry並將它寫在一個xml設定檔內, 每次驅動google desktop時就進去這個設定檔讀出安全金鑰, 也就是每移植一台新電腦時,要先手動去點這個主控台程式,讓它的registry被更新。 但我後來發現它比想像中麻煩,因為就算同一台電腦,同一個使用者, 金鑰好像還是常常會跑掉,如果將來移交這樣的程式給別人, 網管一定煩死了,因為他可能得天天手動去按程式更新那個設定檔。 所以我還是回到原點,希望能即時讀取registry key, 不過既然我都已經將它獨立包裝成了這隻主控台小程式, 我想利用Asp.Net呼叫System.Diagnostics.Process.Start去從外部驅動它, 而且另一方面用戶端的人也不會看見那個主控台閃出來, 除非我就在server上開啟這個網站。 結果驅動這隻程式成功了,但運作結果卻是失敗的, 因為這隻程式有對我的XML設定檔作I/O,而這個動作又被檔掉了, 我認為這應該又是因為權限不足的緣故… 不知有沒有大大因為類似的問題被困擾過,可以分享一下經驗的呢?感激不盡! -- 子曰:『槍管不清,則禮樂不興。』 ~掄語 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.13.116 ※ 編輯: CYBASTER 來自: 140.112.13.116 (11/12 15:26)

11/13 09:04, , 1F
try impersonate
11/13 09:04, 1F

11/13 09:06, , 2F
建議只在需要的地方使用impersonate方法
11/13 09:06, 2F

11/13 09:07, , 3F
不建議在web.config中設定 這樣比較安全一些
11/13 09:07, 3F

11/13 09:08, , 4F
如果不在web.config中設定, 你需要透過PInvoke來實作
11/13 09:08, 4F

11/13 11:32, , 5F
把要讀取的regkey讓Network Service account 可讀就好了
11/13 11:32, 5F

11/13 11:33, , 6F
Network Service是預設的IIS App Pool account
11/13 11:33, 6F
文章代碼(AID): #1A-xX4r8 (C_Sharp)
文章代碼(AID): #1A-xX4r8 (C_Sharp)