淺析ASP.NET訪問權限
.aspx頁面form代碼:
- <form id="form1" runat="server">
- <div>
- <asp:Button ID="Button1" runat="server" Text="Button" OnClick=
"Button1_Click" /><asp:FileUpload ID="FileUpload1"- runat="server" />
- </div>
- </form>
Button1的Click事件代碼:
- this.FileUpload1.SaveAs(Server.MapPath("."));
出現如下錯誤:
“/linkupload”應用程序中的服務器錯誤。
對路徑“D:\HL\上傳下載\linkupload”的訪問被拒絕。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.UnauthorizedAccessException: 對路徑“D:\HL\上傳下載\linkupload”的訪問被拒絕。
ASP.NET訪問權限未被授權所請求的資源。請考慮授予 ASP.NET 請求標識訪問此資源的權限。ASP.NET 有一個在應用程序沒有模擬時使用的基進程標識(通常,在 IIS 5 上為 {MACHINE}\ASPNET,在 IIS 6 上為網絡服務)。如果應用程序正在通過 <identity impersonate="true"/> 模擬,則標識將為匿名用戶(通常為 IUSR_MACHINENAME)或經過身份驗證的請求用戶。
要將 ASP.NET訪問權限授予某個文件,請在資源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項卡。單擊“添加”添加適當的用戶或組。突出顯示 ASP.NET 帳戶,選中所需ASP.NET訪問權限對應的框。
源錯誤:
只有在調試模式下進行編譯時,生成此未處理異常的源代碼才會顯示出來。若要啟用此功能,請執行以下步驟之一,然后請求 URL:
在產生錯誤的文件的頂部添加一條“Debug=true”指令。例如:
- <%@ Page Language="C#" Debug="true" %>
- 或:
- 2. 將以下的節添加到應用程序的配置文件中:
- <configuration>
- <system.web>
- <compilation debug="true"/>
- </system.web>
- </configuration>
請注意,第二個步驟將使給定應用程序中的所有文件在調試模式下進行編譯;***個步驟僅使該特定文件在調試模式下進行編譯。
重要事項: 以調試模式運行應用程序一定會產生內存/性能系統開銷。在部署到生產方案之前,應確保應用程序調試已禁用。以上介紹ASP.NET訪問權限。
【編輯推薦】