2012-08-29 87 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和存储的密码无效。