2011-12-09 93 views
4

我在同一個網絡「\ lo1dc \ ABCD \管理\圖片」的文件夾我設置爲每個人完全權限。我在同一網絡中的另一臺機器上創建了一個新的Web應用程序,並創建了一個名爲「_images」的虛擬目錄並設置此文件夾路徑。我在創建帳戶時將路徑憑證設置爲指定用戶,並以管理員身份設置名稱。全網的管理員用戶。訪問路徑「*****」被拒絕

現在試圖如下圖所示

string strSaveLocationCode128 = Server.MapPath("~/_images") + "//abc.Jpg"; 
barcodeCode128Mobile.drawBarcode(strSaveLocationCode128); 

保存圖像這顯示我的錯誤消息「拒絕訪問路徑‘\ lo1dc \ ABCD \管理\圖片\ abc.jpg的’被拒絕」 。

請幫我我使用Win 7的作爲我的開發平臺。

+0

您的應用程序池的憑據是什麼?確保您在有權訪問您的遠程位置的帳戶下運行它 – DmitryK

+0

我也爲應用程序池設置了相同的憑據。 –

+0

什麼是遠程機器名稱?路徑應如下所示:\\ remotemachinename \ lo1dc \ abcd \ Admin \ Images – DmitryK

回答

3

終於讓我找到了答案,網絡路徑不能由匿名用戶訪問。所以

SPSecurity.RunWithElevatedPrivileges 

已經爲我做了詭計。 謝謝大家在適當的時候提供寶貴的幫助。

0

您可以爲本地用戶使用LOGONUSER功能登錄:

 [DllImport("advapi32.dll", SetLastError = true)] 
     private static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); 

     // types 
     const int LOGON32_LOGON_INTERACTIVE = 2; 
     const int LOGON32_LOGON_NETWORK = 3; 
     const int LOGON32_LOGON_NEW_CREDENTIALS = 9; 

     // providers 
     const int LOGON32_PROVIDER_DEFAULT = 0; 
     const int LOGON32_PROVIDER_WINNT35 = 1; 
     const int LOGON32_PROVIDER_WINNT40 = 2; 
     const int LOGON32_PROVIDER_WINNT50 = 3; 

用法:

IntPtr token = IntPtr.Zero; 
LogonUser("User Name", "Domain Name", "Password", LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref token); 

using (WindowsImpersonationContext user = new WindowsIdentity(token).Impersonate()) 
{ 
    // Do file operations here... 
}