2012-08-16 53 views
3

我正在使用表單認證,並且我想將某些頁面限制爲某些角色。現在,每個人都可以訪問整個應用程序登錄後。使用沒有「成員資格」表的角色認證

但我想限制某些頁面某些角色。例如,「查看日誌」頁面。

我在想,我的web.config文件應該是這樣的:

<location path="logs/view/"> 
<system.web> 
    <authorization> 
    <allow roles="super, admin"/> 
    </authorization> 
</system.web> 

但我的問題是,底層應用程序的構建方式,在用戶登錄成功通過一個api調用我返回一個「用戶」onbject並且該用戶的角色是該對象的一部分(User.Role ==「admin」)。我沒有一個參考數據庫表,告訴APP用戶有什麼作用。

我怎樣才能在

<allow roles="super, admin"/> 

位在我的webconfig的用戶對象的角色屬性相關聯?

回答

1

您可以在您的global.asax中連線AuthenticateRequest事件HttpApplication實例。在這種情況下,您需要配置IPrincipal實現以獲得所需的設置。最簡單的方法是通過實例化RolePrincipal並設置HttpContextUser屬性。

更新我剛剛查找了一些示例實現,我發佈了以前的答案。有一個基於ASP.NET MVC,另一個基於Web Forms。

0

使用位置設置。

<configuration> 
    <location path="Logon.aspx"> 
     <system.web> 
     <authorization> 
      <allow users="?"/> 
     </authorization> 
     </system.web> 
    </location> 
</configuration> 

獲取更多信息,您可以採取walkthru上MSDN

相關問題