2011-04-16 27 views
0

喜權限: 在我的應用程序,在該網站的所有內容只開放登錄用戶,這是說,如果我有以下網頁:如何控制在asp.net

Default.aspx 
Document.aspx 
xxx.aspx 
.... 
SysConfig.aspx 

當然有一個登錄頁面:login.aspx

所有頁面排除「login.aspx的」受到保護,只有登錄用戶可以看到他們,SysConfig.aspx僅僅是開放的,它的類型是「admin」的用戶。

那麼如何控制呢?

例如,當從login.aspx的用戶登錄,我可以將相關的信息保存到「會話」,然後在「Default.aspx.cs」我可以使用:

if(Session["user"]==null)..... 

但是如果是這樣,我必須在每個受保護的頁面(Document.aspx.cs/xxx.aspx.cs)中編寫相同的代碼,我不知道是否有一個簡單的方法?在java中,我可以簡單地使用struts2的攔截器,但我不知道如何在asp.net中創建它。

謝謝。

回答

1

在你的web.config文件中的system.web部分補充一點:

<authorization> 
    <deny users="?"/> 
</authorization> 

這將防止任何未經授權的用戶訪問您的文件。

併爲您的Admin用戶設置訪問SysConfig

<location path="SysConfig.aspx"> 
    <system.web> 
     <authorization> 
      <deny users="?"/> 
      <allow roles="Admin"/> 
     </authorization> 
    </system.web> 
</location> 

編輯:要允許訪問的Login.aspx匿名用戶,補充一點:

<location path="Login.aspx"> 
<system.web> 
    <authorization>    
     <allow users="*"/> 
    </authorization> 
</system.web> 

+0

<授權> <拒絕用戶=「?」/> 將保護未經身份驗證的用戶訪問我的文件,但login.aspx如何,它應該由所有用戶訪問。順便說一句,在這些設置之後,有什麼可做的嗎?例如,用戶登錄後應該做什麼? – hguser 2011-04-16 08:18:44

+0

檢查編輯部分。 – 2011-04-16 08:28:19

+0

感謝您的關注。你回覆我serach「asp.net用戶授權」後,我檢查了這個帖子:http://www.asp.net/security/tutorials/user-based-authorization-vb。然而,我不確定web.config中的「用戶」是什麼意思,我不認爲這個「用戶」是我的應用程序中的「用戶」模型(我的意思是將用戶保存到數據庫中) – hguser 2011-04-16 08:41:14