我已將在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的情況下重現此問題的步驟。
是否檢查您在Azure中使用的數據庫已在AspNetUserRoles和AspNetRoles右行連接在AspNetUsers表中的用戶? –
Authorize Attribute和User.IsInRole在比較時區分大小寫。 – jd4u
@OlavNybø,是的,這是完全正確的。 – Knelis