我想暫時將登錄用戶更改爲另一個用戶來執行一些操作。如何將登錄用戶更改爲另一用戶?
例如,假設我以「Joe」身份登錄。在我的方法中,我想使登錄用戶從「Joe」變爲「SuperUser」,執行一些過程,然後將登錄用戶更改回「Joe」。有人可以幫忙嗎?
我想暫時將登錄用戶更改爲另一個用戶來執行一些操作。如何將登錄用戶更改爲另一用戶?
例如,假設我以「Joe」身份登錄。在我的方法中,我想使登錄用戶從「Joe」變爲「SuperUser」,執行一些過程,然後將登錄用戶更改回「Joe」。有人可以幫忙嗎?
我想你想ASP.NET的模擬。檢出what it is和how 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 question和this answer。
雖然我不明白爲什麼一個用戶在現實世界的應用程序成爲超級用戶,我覺得你可以看看asp.net模擬技術......
心連心。
但是,ASP.NET模擬是在Windows操作系統級別。我想用ASP.NET成員級別進行模仿。 我正在擴展一個Web應用程序,爲所有創作者角色中的對象提供訪問級別。內置方法基於登錄用戶而不是登錄角色檢查權限,我必須模擬成員用戶。即使我可以檢查角色的權利,但對我來說這不起作用,因爲創建者可以完全訪問他們擁有的所有項目(即使他們沒有一般的修改權限)。所以我想給創作者的角色權利,而不是創作者的用戶 – TruMan1 2010-04-02 17:06:05
從這個問題的答案: Elevating process privilege programmatically?
您可以指定新的過程應該提升的權限由您的StartInfo對象的動詞屬性設置爲「運行方式」來啓動,如下所示:
startInfo.Verb =「runas」;
這改變了你的Windows用戶。如果你想更改登錄到你的頁面的ASP.NET用戶,那麼這不是你正在尋找的。
這是否爲ASP.NET用戶(會員提供者)?會員提供商是我需要的。 – TruMan1 2010-04-02 16:57:32
我編輯了我的答案,並提供了有關ASP.NET Membership模擬的信息。 – ChessWhiz 2010-04-02 18:23:28