2010-04-02 114 views
1

我想暫時將登錄用戶更改爲另一個用戶來執行一些操作。如何將登錄用戶更改爲另一用戶?

例如,假設我以「Joe」身份登錄。在我的方法中,我想使登錄用戶從「Joe」變爲「SuperUser」,執行一些過程,然後將登錄用戶更改回「Joe」。有人可以幫忙嗎?

回答

1

我想你想ASP.NET的模擬。檢出what it ishow to use it。像這樣的事情(從第二個鏈接):

System.Security.Principal.WindowsImpersonationContext impersonationContext; 
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); 

//Insert your code that runs under the security context of the authenticating user here. 

impersonationContext.Undo(); 

編輯:ASP.NET成員資格,看this SO questionthis answer

+0

這是否爲ASP.NET用戶(會員提供者)?會員提供商是我需要的。 – TruMan1 2010-04-02 16:57:32

+0

我編輯了我的答案,並提供了有關ASP.NET Membership模擬的信息。 – ChessWhiz 2010-04-02 18:23:28

0

雖然我不明白爲什麼一個用戶在現實世界的應用程序成爲超級用戶,我覺得你可以看看asp.net模擬技術......

心連心。

+0

但是,ASP.NET模擬是在Windows操作系統級別。我想用ASP.NET成員級別進行模仿。 我正在擴展一個Web應用程序,爲所有創作者角色中的對象提供訪問級別。內置方法基於登錄用戶而不是登錄角色檢查權限,我必須模擬成員用戶。即使我可以檢查角色的權利,但對我來說這不起作用,因爲創建者可以完全訪問他們擁有的所有項目(即使他們沒有一般的修改權限)。所以我想給創作者的角色權利,而不是創作者的用戶 – TruMan1 2010-04-02 17:06:05

0

從這個問題的答案: Elevating process privilege programmatically?

您可以指定新的過程應該提升的權限由您的StartInfo對象的動詞屬性設置爲「運行方式」來啓動,如下所示:

startInfo.Verb =「runas」;

這改變了你的Windows用戶。如果你想更改登錄到你的頁面的ASP.NET用戶,那麼這不是你正在尋找的。

相關問題