2013-11-25 29 views
2

我已將在Windows Azure雲服務中運行的Web應用程序從默認的Membership系統從MVC 4模板遷移到新的基於OWIN的ASP.NET標識提供程序。授權屬性在OWIN上不適用於Azure

該應用程序在很大程度上依賴於角色,出於某種原因,自升級以來已停止在Azure上工作。

我的控制器或動作裝飾有[Authorize]。這很好,除非我指定角色[Authorize(Roles = "User.Test")]並在Azure計算模擬器中運行。現在我將獲得無限重定向到登錄頁面並返回(我已登錄,但由於某種原因它不接受角色)。 有趣的是,如果我直接調試/運行Web項目(所以不使用Azure模擬器),它一切正常。

關於如何使這個工作在Azure上的任何想法?我還沒有任何其他的行爲,所以這是讓我無能爲力。

更新2013年11月26日

我發現在VS2013默認的MVC 5模板類似的行爲。請參閱此forum thread on ASP.NET瞭解如何在沒有Azure的情況下重現此問題的步驟。

+0

是否檢查您在Azure中使用的數據庫已在AspNetUserRoles和AspNetRoles右行連接在AspNetUsers表中的用戶? –

+0

Authorize Attribute和User.IsInRole在比較時區分大小寫。 – jd4u

+0

@OlavNybø,是的,這是完全正確的。 – Knelis

回答

0

好吧,出於某種原因,我自己通過使用MyGet的Owin和Identity庫的預發佈,導致了整個混亂。

刪除所有軟件包並安裝穩定版本修復了我所有的問題。

0

這一個爲我做的伎倆:

<system.webServer> 
    <modules> 
     <remove name="RoleManager" /> <!-- <<<<< -->