2013-12-16 96 views
1

我有一小部分代碼需要提升安全權限才能運行它。如何隱藏我在C#中冒充登錄詳細信息

我已經使用SimpleImpersonation類here來包裝我的代碼段,我創建了一個新的非管理員用戶,但我必須在代碼中輸入域,用戶名和密碼。

using (Impersonation.LogonUser("DOMAIN", "USERNAME", "PASSWORD", LogonType.Interactive)) 
    { 
     // Do stuff 
    } 

在保持所有登錄信息安全的同時,實現此模擬的最佳方式是什麼?

+0

搬到web.config,現在需要保護它 – Owen

+0

啊,沒有注意到鏈接,謝謝 – Owen

+0

正是我所需要的,添加它作爲答案,我會接受它。 – Owen

回答

2

憑據你應該將安全敏感細節成web.config,因爲配置文件支持加密。另一方面,源代碼未加密。雖然它可能會被混淆,但混淆器不會更改字符串文字的內容。

幸運的是,加密部分web.config是一個標準功能。 ASP.NET IIS Registration Tool是您可以用來執行加密的工具。描述這個過程的是a link to a post。這裏是微軟另一篇非常有用的文章的鏈接:Creating and Exporting an RSA Key Container

+0

從您的頁面鏈接的大教程:http://aspnet.4guysfromrolla.com/articles/021506-1.aspx 問題排序,謝謝! 現在只有當.NET在app_start中對我的web.config進行加密時,我的源代碼管理纔會搞砸。我應該嘗試命令工具。 – Owen

1

讓web.config中的信息可能會更安全。如果您關閉了自定義錯誤並在該代碼塊中引發了錯誤,那麼您將向公衆公開您的用戶名和密碼,如果它位於web.config中,則可以避免此錯誤。

另一種方法是使用鹽來創建一個成員表中的用戶+哈希密碼,並要求在需要的信息,這樣你永遠不會有明文