2011-03-15 66 views
0

現在授權在我的asp.net web表單應用程序中工作得很完美。防止某些基本成員角色查看(或意識到)管理目錄?

我想知道是否有可能絕對防止所有未經過身份驗證和未經授權的用戶發現管理目錄。

如果用戶輸入url到admin目錄,它會將它們帶到登錄頁面(確保它們存在,這是不好的!),如果成功,它們將能夠訪問管理目錄。爲了安全起見,有一種方法可以防止它們被重定向到登錄頁面,並且可能只是將它們重定向到主頁面,以便他們永遠不能確保它們輸入的URL有效。

+0

在您的情況下..誰可以合法登錄到管理頁面的用戶會得到它? – 2011-03-15 04:12:39

+0

管理員目錄可用於經過身份驗證和授權的(管理員角色)用戶。 Unauthenticated = NO 授權的基本職責=否 授權的管理員角色=是 – loyalpenguin 2011-03-15 04:15:46

回答

1

正如你所說的授權工作正常,所以你將不得不做一些代碼。嘗試把頁管理文件夾一個單獨的母版頁中,放置遵循本(管理)母版頁的page_load

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.User.Identity.IsAuthenticated || !Page.User.IsInRole("admin")) 
    { 
     Response.Redirect("to some other page"); 
    } 
} 

雖然這個工作,但不是一個好的解決方案,因爲母版頁後,被叫內容頁面,所以如果您正在使用像打數據庫這樣的繁重工作,在重定向用戶之前就已經發生了。

另一種選擇是將上面的代碼放在admin文件夾中的所有內容和其他aspx頁面中。或者你可以嘗試在admin文件夾中創建頁面的基類,並實現這個角色並驗證該基類的身份驗證。

PS: - 你還需要從web.config在文件夾中刪除限制,因爲如果web.config限制用戶訪問管理文件夾,它永遠不會執行的代碼塊並重定向用戶到登錄頁面。

相關問題