2010-04-01 18 views
1

我正在創建一個ASP.Net MVC網站,我很快將在私人測試版發佈。如何使一個Asp.net MVC 2網站有一個私人測試模式

我在用什麼。

  • ASP.NET MVC 2
  • ASP.NET SQL成員資格提供
  • 授權屬性上ActionMethods。恩。 [EditorsOnly]

我試圖做到:

  • 在我的網站的內測期間,我想沒有任何匿名用戶訪問我的網站。
  • 只有我的網站的Beta測試者應該能夠正常登錄和使用我的網站。
  • 經過私人測試期後,人們可以使用我已經設置的安全結構訪問它。
  • 我希望我不必重新編譯,但可以在webconfig中設置爲在私人測試模式和標準模式之間切換。

感謝您的建議。

回答

0

如果您有兩套完全相同的控制器,但授權屬性彼此不同,該怎麼辦?現在我通常會強烈迴避代碼複製,但是這隻會在有限的時間內複製,您稍後將刪除重複的代碼。如果您這樣做,那麼您可以在測試期間將您的頁面路由到「測試」控制器,並在您進行切換時重新路由到「活動」控制器。這樣做意味着您只需更改global.asax文件即可「翻轉開關」。然後,您可以按照自己的日程安排刪除「測試版」控制器。

可能有更好的解決方案,但我不認爲這是一個選項的壞。這是一個糟糕的長期解決方案,但根據定義,您的要求使其成爲短期解決方案。

+0

嗯,我可以通過繼承「live」控制器簡單地創建「測試」控制器嗎?是否過度複雜?這將減少代碼的實際內容的代碼重複。你的「測試版」控制器的裝飾會略有不同,但只會繼續調用大部分的'base.Foo()'。與我的文章一樣的概念,但與OO。 – Jaxidian 2010-04-01 21:16:43

+0

謝謝Jaxidian,是的,這將工作。我想也許有一件簡單的事情可以通過重寫Controller Factory或成員資格提供程序中的某些東西來實現。或者,如果他們不在測試用戶角色中,我可以放入一些重定向到登錄的代碼。但是我可能會過度複雜化這個問題。 – 2010-04-01 23:31:09