我基本上做的是this。但是,無論何時我使用內置的AuthorizeAttribute,MVC框架(我猜)都不會查看我的主體以確定用戶是否具有適當的角色。它一直試圖在app_data目錄中創建一個新的MDF文件,並且因爲它沒有特權而被炸燬。自定義表單身份驗證+ MVC3 + AuthorizeAttribute
這是預期的行爲,我是否應該派生自己的AuthorizeAttribute並自己檢查主體?
另一個奇怪的行爲指出,我有兩個網站在同一個域上,我正在做單點登錄。在任一站點上,我使用相同的類庫在AuthenticateRequest上重新創建自定義主體,並且在調試主體在每個站點上正確設置時看到。但是,站點1(對用戶進行身份驗證的站點)使用內置的AuthorizeAttribute,它完美地工作,但站點2正在嘗試在調用具有AuthorizeAttribute的任何操作時創建MDF文件。
好的,我想我找到了更多的信息。我的自定義主體對象正在Global.asax文件內的PostAuthenticateRequest方法中更改爲RolePrincipal。如果我將自定義主體集邏輯移動到PostAuthenticateRequest方法中。一切正常,但我不必爲其他網站做這件事,我無法找到他們的web.config文件之間的區別。所以我真正想要做的是找出將我的主體更改爲RolePrincipal對象並將其禁用。 – 2011-12-19 23:13:35