我需要模擬我的代碼以不同的Windows用戶ID運行,現在我正在使用一些代碼,我從網上調用了一些本地庫。在Windows 7中模擬C#代碼
代碼的目的是更改文件服務器上用戶目錄權限的權限。
我可以更改我的文件夾權限,但我有其他用戶的憑據去並更改他的文件夾的權限。但是我通過冒充他來運行我的機器上的代碼。
但是,我得到未經授權的例外。
我使用的代碼是:
[DllImport("advapi32.dll", SetLastError = true)]
private static extern int LogonUser(
string lpszUserName,
string lpszDomain,
string lpszPassword,
int dwLogonType,
int dwLogonProvider,
ref IntPtr phToken);
我不知道這是工作在Windows 7或沒有。有沒有人遇到這樣的問題..?
異常我得到:
Messagee:"{"Attempted to perform an unauthorized operation."}"
stack trace:
at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections)
at System.Security.AccessControl.FileSystemSecurity.Persist(String fullPath)
at System.IO.Directory.SetAccessControl(String path, DirectorySecurity directorySecurity)
at FolderAccessManager.Program.Main(String[] args) in
能否請您分享一些解決方案..?
請詳細說明例外情況,應該有所幫助 –
編輯例外信息的情況; – sbmandav
爲什麼不使用'runas'? –