SimpleMembership中的角色提供程序

SimpleMembership中的角色提供程序,simplemembership,Simplemembership,我在.NET Framework 4项目中使用了标准VS 2012 MVC 4 Internet模板。我主要使用外部登录(Google、Microsoft、Facebook、Yahoo、Twitter)来访问我的应用程序中带有[Authorize]属性的部分 [我注意到,与我在ASP.NET web表单应用程序中看到的内容不同,VS创建的默认web.config不包含任何关于成员资格或角色提供程序的部分。] 我将该项目部署到azurewebsites.net网站。一开始一切正常,但使用一段时间后

我在.NET Framework 4项目中使用了标准VS 2012 MVC 4 Internet模板。我主要使用外部登录(Google、Microsoft、Facebook、Yahoo、Twitter)来访问我的应用程序中带有[Authorize]属性的部分

[我注意到,与我在ASP.NET web表单应用程序中看到的内容不同,VS创建的默认web.config不包含任何关于成员资格或角色提供程序的部分。]

我将该项目部署到azurewebsites.net网站。一开始一切正常,但使用一段时间后,应用程序将抛出一个异常,因为它试图使用服务器的机器配置文件,使用名为
LocalSqlServer
的连接字符串访问
SqlMembershipProvider

Q1:SqlMembershipProvider与SimpleMembership提供程序的关系如何?

不管怎样,我在web.config中创建了一个部分,并添加了。这解决了该问题,但又产生了另一个问题,因为现在它再次尝试使用连接字符串
LocalSqlServer
访问machine.config中的
SqlRoleProvider
!我试图在我的web.config中添加一个带有的节,但没有成功。它坚持要包含一个defaultProvider。我应该放什么

Q2。在.NET Framework 4.0 MVC 4应用程序中,SimpleMembership角色提供程序要使用的程序集是什么?

我试过:

System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
但它产生了另一个问题,它
找不到存储过程“dbo.aspnet\u CheckSchemaVersion”
。在运行aspnet_regsql.exe之前,我想问:

Q3:为什么标准应用程序在一段时间内运行良好,然后开始寻找SqlMembershipProvider和SqlRoleProvider?


有人在玩服务器上的设置吗?

以下是使用SimpleMembership时web.config设置的外观

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
  <providers>
    <clear/>
    <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
  </providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
  <providers>
    <clear/>
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
  </providers>
</membership>


. 此方法中的第一个参数指示要使用的连接字符串。如果应用程序是使用MVC4 Internet模板创建的,则在帐户控制器上修饰的筛选器InitializeSimpleMembershipAttribute中调用此方法。如果您需要自己添加对InitializeDatabaseConnection方法的调用,我只需要将其放在Gloaba.asax应用程序的启动方法中。

谢谢,您的信息很有用。我想知道为什么MVC与web表单应用程序不同,但却隐藏在machine.config中。仍然是个谜的是,为什么服务器突然表现出不同的行为。在使用基于角色的安全性时,请查看它是否有帮助。