2012-08-29 84 views
1

我在WindowsAzure臨時環境中部署了我的MVC應用程序。我用會員通用提供商。但我有點困惑。Azure會員帳戶訪問問題

我的困惑是,我現在在部署後在本地機器上創建了一些帳戶,當我嘗試訪問雲中的這些帳戶時,出現錯誤消息,但用戶名或密碼不正確,但如果我從本地計算機訪問這些帳戶,那麼沒有錯誤信息。我沒有改變連接字符串。任何人都可以解釋我的概念或給我一些參考鏈接?

+0

您的連接字符串指向SQL Azure數據庫還是指向其他位置?也許到app_data中的本地數據庫? –

回答

1

當你問到它是如何工作的概念時,我可以解釋它。當您在MVC應用程序中使用ASP.NET Universal Providers時,必須在其中配置數據庫。在大多數情況下,SQLExpress是通用提供程序用於存儲成員資格詳細信息的本地數據庫。

現在,當您將應用程序作爲Cloud Service部署到Windows Azure時,沒有配置本地數據庫,因此對Universal Providers的默認配置將不起作用。解決這個問題的最好方法是將MVC應用程序通用提供程序配置爲即使在本地測試時也使用SQL數據庫。一旦完成本地測試並將您的應用程序部署到Windows Azure,因爲您的應用程序仍然指向SQL數據庫,它將毫無問題地工作(考慮到您已經正確配置了SQL數據庫)。

這個特殊的article顯示了MVC應用程序中用於連接SQLExpress或SQL數據庫的不同連接字符串,因此您可以使用它來修改您的SQL DB。

0

您需要在您的web.config中設置明確的<machineKey>。該密鑰用於與會話和會員相關的許多事情(如Cookie和密碼)。如果您沒有明確指定密鑰,Windows Azure會在每個部署中爲您選擇一個密鑰,這會使現有的身份驗證Cookie和存儲的密碼無效。