2012-01-05 117 views
-1

我正在嘗試將Elmah日誌記錄添加到web服務。用戶通過身份驗證以確認他們是有效的用戶,但他們從未真正登錄過。因此,當ELMAH拋出並記錄錯誤時,用戶名始終爲空。能夠以編程方式填充該值會很有幫助,但我似乎無法找到任何方法來執行此操作。是否有可能在沒有用戶登錄的情況下更改用戶的例外情況?

我的代碼非常簡單:

public static void Add(Exception ex) 
{ 
    try 
    { 
     ErrorSignal.FromCurrentContext().Raise(ex); 
    } 
    catch (Exception ex2) 
    { 
     throw ex2; 
    } 
} 

我似乎無法找到一個方法來創建我們指定的用戶名自定義異常。

+1

只是出於好奇 - 爲什麼你認證的用戶,如果你不需要登錄他們? – 2012-01-05 22:14:01

+0

這是一個Web服務,所以我們需要確保用戶有能力使用Web服務,然後需要將它們登錄到數據庫中,但除此之外,我們不需要做任何事情。我可以登錄用戶,但這會涉及到我重寫一堆代碼,以便將正確的信息傳遞給我的例外。希望避免這種情況。 – Cyfer13 2012-01-05 22:27:34

+0

驗證用戶身份的代碼在哪裏,您應該能夠存儲用戶名或域用戶名,一旦通過身份驗證..您的代碼示例在這裏並沒有真正幫助很多對不起...... – MethodMan 2012-01-05 22:33:59

回答

0

如果可以,我建議以具有相應權限的模擬用戶身份運行Web服務。這當然取決於用戶的身份驗證方式,但這是一個選項。

下面是我們如何做到這一點(添加到Web服務的web.config):

<identity impersonate="true" userName="registry:HKLM\Software\OurApp\ASPNET_SETREG,userName" password="registry:HKLM\Software\OurApp\ASPNET_SETREG,password"/> 

我們使用ASPNET_SETREG工具來記錄在註冊表中的域用戶名和密碼,該用戶將負責所有的數據庫交互等。

相關問題