在一些應用場景中,需要以較高的帳戶許可權來執行一段程式從而實現某個功能。比如:在asp.net程式中,如果需要寫入一段日誌到檔案中,但空間提供商並沒有給指定目錄asp.net帳戶寫許可權,就可以用到此方法了,前提是你要知道他們給你開的使用者及密碼,一般都是ftp帳號及密碼。當然,最簡單的辦法就是找空間商開通此許可權。上面的情況可能不是必須這樣做的,但以程式設計方法實現身份模擬的方法還是很有的!
**如下:
using system;
using system.componentmodel;
using system.runtime.interopservices;
using system.security.principal;
namespace fcms.framework.utility
//模擬指定的使用者身份
/**
///
///
///
///
///
///
public bool impersonatevaliduser(string username,string domain,string password) }}
}if(token!= intptr.zero)
closehandle(token);
if(tokenduplicate!=intptr.zero)
closehandle(tokenduplicate);
return false;}
//取消模擬
/**
///
///
public void undoimpersonation() }}
使用方法:
//在你執行特定功能的**前先驗證模擬帳戶:
fcms.framework.utility.identityanalogue ia
= new fcms.framework.utility.identityanalogue();
if( ia.impersonatevaliduser( username , domain , password ) )
//最後將使用者上下文恢復為當前表示的windows使用者
ia.undoimpersonation();
c 中事件模型的模擬
using system using system.collections.generic using system.linq using system.text namespace csharp基礎 static void but action object sender,actioncancel...
c 以POST方式模擬提交表單
這是我一年前寫的乙個用c 模擬以post方式提交表單的 現在記錄在下面,以免忘記咯。那時候剛學c 忽忽。很生疏。看上去也很幼稚 臃腫不堪 region 內容新增函式 contentinsert public string contentinsert string bookid,string book...
c 以POST方式模擬提交表單
這是我一年前寫的乙個用c 模擬以post方式提交表單的 現在記錄在下面,以免忘記咯。那時候剛學c 忽忽。很生疏。看上去也很幼稚 臃腫不堪 region 內容新增函式 contentinsert public string contentinsert string bookid,string book...