2011-10-24 63 views
0

我正在尋找創建一個web.config文件,我有點困惑哪些訂單做哪些標籤去。我有兩個角色:測試人員和預覽人員。web.config和認證,授權,位置

這裏就是我希望做的:

1)使用形式認證標籤與URL「的Login.aspx」

2)使用位置標記說,目錄/ AppPages和/ AppServices只能被測試人員訪問(即拒絕*,?,預覽器,只允許驗證測試人員,否認其他人)

3)使用位置標籤說目錄/腳本和/樣式只能被測試人員訪問和預覽者並否認其他人

4)我該如何製作,以便所有嘗試查看/ AppPages或/ AppServices頁面的預覽者都可以重新路由到自定義頁面。

我有以下的web.config文件:

<system.web> 

    <connectionStrings> 
    ............... 
    </connectionStrings> 

    <roleManager enabled="true"/> 

    <authentication mode="Forms">  
    <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH"> 
    </forms> 
    </authentication> 

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

    <location path="AppPages"> //same for AppServices 
    <system.web> 
     <authorization> 
     <deny users="*" /> 
      <deny users="?"/> 
     <allow roles="tester" /> 
     <deny roles="previewers" /> 
     </authorization> 
    </system.web 
    </location> 

    <location path="Scripts"> //same for Styles 
    <system.web> 
     <authorization> 
      <allow roles="previewers" /> 
      <allow roles="tester" /> 
      <deny users="?"/> 
     </authorization> 
    </system.web> 
    </location> 

</system.web> 

什麼我希望做的是讓所有用戶被重定向到預覽頁面和如果用戶以測試人員身份登錄,那麼他將能夠轉到應用程序頁面,而預覽者不會。

感謝您的建議。

回答

2

關於不同的登錄頁面......據我所知,在asp.net中沒有一種簡單的方法可以做到這一點..有很多路徑可以實現它:-)這裏有一篇文章概括一個相當簡單的解決方案.. http://forums.asp.net/t/1348477.aspx

儘可能的授權規則,這有點像斷switch語句..訪問該網站時,適用於當前用戶狀態的第一條規則是一個應用,它停止處理任何更多...因此,例如,該

<deny users="*" /> 
<deny users="?"/> 
<allow roles="tester" /> 
<deny roles="previewers" /> 

也許應該去

<deny users="?"/> 
<allow roles="tester" /> 
<deny users="*" /> 

否則,無論如何,第一行都會拒絕所有人。

http://msdn.microsoft.com/en-us/magazine/cc301390.aspx

+0

謝謝。那麼Location標籤呢?它的順序是否重要,我是否按照正確的順序? – frenchie

+0

沒有那些包含在現有標籤,他們只是在那裏自己的配置元素 <配置> ..... 的孩子...... ... 或者您可以將web.config文件放在特定的目錄中,並在那裏指定授權信息。 < –