0

详细描述这将是艰难的,但这里有云:ASP.NET通用提供商与天青 - 用户通过创建ASP.NET配置不工作

配置


  • ASP .NET MVC 3.0网站项目
  • Visual Studio 2010 SP1
  • Windows Azure部署包括计算,存储和SQL
  • SQL Azure有两组数据库;发展&生产

问题


使用ASP.NET通用提供商我设置一个Development_ApplicationServices DB在我的SQL Azure的账户。然后,我进入了ASP.NET配置网站并为开发创建了用户并将其分配给角色。由于有多个开发人员在这个项目上工作,所以我们始终如一地使用相同的默认帐户来测试与角色相关的用例。开发一直顺利进行,没有提供商的任何问题。

我今天第一次将应用程序发布到Azure计算实例并尝试登录。突然间,我们一直使用的帐户,尽管指向相同的数据库不起作用。如果我在Azure环境中注册一个新帐户,那么它工作正常,但是,如果我在开发环境中运行,然后在帐户控制器中使用默认的MVC注册函数在Azure实例上创建的帐户不是如果我直接查询,我可以在数据库中看到它。

问题


  1. 是否通用提供嵌入一些关于网站上下文(因为缺乏一个更好的词)到散列用户名或密码?
  2. 对于Dev/Prod环境配置的方式,是否有最佳做法,因为它与SQL Azure和Membership Services有关,我可以将其用作参考?

很高兴回答问题,使这个更清楚,但我很困难在这一点上,不知道什么是相关的包括,因为这似乎很奇怪,至少对我来说。

由于提前, ķ

+0

我的配置文件,你的提供者是否有一个applicationName?在prod和dev ApplicationServices表中它是一样的吗? – danludwig 2012-03-19 11:01:58

回答

0

我也收到此完全相同的行为。我在官方的Azure论坛上发布了一个问题(http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/e8944c4d-5e22-4844-82fc-2e6863f0901a),并在另一篇文章中针对我在初次搜索期间找不到的stackoverflow中的答案。

您会在这里找到答案:

ASP.NET Membership - login works locally, fails on Azure

总之,在Azure上使用的哈希类型不同于目前其.NET 4.0的缺省值。您必须明确地覆盖Web.config中membership元素的默认machineKey元素和hashAlgorithmType属性,以指定要使用的散列方法。

它为我工作!