2011-07-12 49 views
1

所以我有一個在Windows Azure上運行的MVC 2應用程序。Windows Azure「Sandbox」

一切工作正常,但我想創建一個子域,我可以測試一些東西,我需要爲實際的服務器,但我不希望任何人看到它。然而,如果我只是像www.mywebsite.com/sandbox那樣 - 任何人都可以從技術上訪問它,即使他們必須知道它在那裏,我不想要。

反正是有,我可以建立類似的東西和密碼,輕鬆保護它還是什麼?如果是這樣,我會使用相同類型的事物作爲私人管理URL,團隊成員只能進入並檢查某些內容(使用我維護的用戶名/密碼)。

回答

2

就我所見,您有兩種選擇。

  1. 創建暫存部署,並使IIS網站響應特定的DNS請求(例如http://sandbox.mywebsite.nothere)。請更改您的DNS設置,或者查看您的本地主機文件(例如,在C:\Windows\System32\drivers\etc\hosts)。這是通過默默無聞的安全,雖然它不是有效的,但它很容易,也許是一個很好的開始。
  2. 正如史蒂夫摩根在評論中所建議的那樣,在應用程序中實現身份驗證。如果你有一個ASP.NET(MVC與否)的應用程序(我假設的MVC在我的例子),你可以像這樣做:

    • 創建MembershipController
    • 創建一個登錄行動接受用戶名和密碼,實施這樣看:

      公共虛擬的ActionResult登錄(Qinoa.Web.Models.LoginData模型) { 如果(model.Username == 「myuser的」 & & model.Password == 「hardcodedPassword」 ){ FormsAuthentication.SetAuthCookie( 「myuser」,model.RememberMe); } return RedirectToAction(MVC.Home.Index()); }

在您的網頁。配置文件集

<authentication mode="Forms"> 
    <forms loginUrl="~/Membership/Login" timeout="2880" /> 
</authentication> 

在所有測試容器上添加[Authorize]屬性。您的應用現在(基本)受到保護。

在#1的旁註中:您可以在一個Web角色上託管多個站點。

+0

我不能爲我的生活弄清楚爲什麼它沒有格式化我的代碼,並且編輯不起作用〜 〜我希望你能弄清楚它說的是什麼。 –

+0

謝謝你!我將繼續這樣做。 – slandau

+0

太棒了。讓我知道它是如何擺脫的。這是一件很平常的事情,舞臺和測試環境,我想寫一篇關於它的博客文章。 –

1

使用Windows Identity Foundation和Access Control Service配置您的應用程序。

然後,您有您可以使用不管理自己的用戶,以確保您的應用程序身份提供商的選擇。

更好的是,如果您有Active Directory,則會在內部部署ADFS 2.0。其優點在於,即使有人到達您的應用程序,如果他們不能訪問您的ADFS服務器運行的網絡,也無法進行身份驗證。

我以這種方式保護Azure應用程序,並且工作得很好。我獲得了透明的集成身份驗證,但它非常安全。

你並不需要公開AD或ADFS網絡做到這一點之外; Azure和ADFS之間沒有溝通,全部都是通過瀏覽器完成的。

+0

這聽起來像它會工作得很好,我很欣賞答案,但我希望我能做一些很簡單的事情,哈哈。就像當這個控制器被擊中時 - 需要在控制器中硬編碼的用戶名和密碼。 (愚蠢的我知道......但簡單,哈哈)。我不知道如何在UI上做這個,但 – slandau

+0

給它一個去。 WIF和ACS都是配置,一旦你掌握了它的頭腦,花費幾分鐘時間爲聯合認證設置你的應用程序。 –

+0

我會研究它,但在同一時間,嘗試找出一些簡單的,大聲笑 – slandau