2

我正在开发ASP.NET MVC 4网站,并使用Microsoft ASP.NET Universal Providers。我打算部署到Windows Azure并使用SQL数据库。为了初始化本地SQL Server 2008数据库上的成员资格,配置文件和角色,我通过ASP.NET Web站点管理工具创建了一个新用户。我如何初始化会话?ASP.NET通用提供程序和会话状态

当我的应用程序运行时,自然我得到一个SqlException,说“无效的对象名称dbo.Sessions。”在Windows Azure上进行测试时,这不是问题; dbo.Sessions是自动创建的。从Azure上的dbo.Sessions生成一个创建表脚本并将其应用到本地SQL数据库后,我可以在本地运行。

的web.config:

<membership hashAlgorithmType="SHA1" defaultProvider="DefaultMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" passwordFormat="Hashed" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
    </providers> 
</membership> 
<profile enabled="false" defaultProvider="DefaultProfileProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</profile> 
<roleManager enabled="false" defaultProvider="DefaultRoleProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</roleManager> 
<sessionState mode="Custom" customProvider="DefaultSessionProvider"> 
    <providers> 
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</sessionState> 

回答

2

本文进入老aspnet_Memembership之间的差异更详细对全球供应商。

http://dotnet.dzone.com/articles/stronger-password-hashing-net

从文章的要点:

首先,有没有更多aspnet_regsql,你只要确保你的连接字符串设置和帐户具有DBO权限(不用担心,它不必保持这种方式)然后运行应用程序并尝试执行任何操作这应该导致会员提供商击中数据库(即登录 - 没有问题,没有帐户)。

这就是它的一切,当它工作。

+0

有一件事让我几乎疯狂。我正在使用Studio 2012和IIS Express进行配置,并在配置中做了错误的处理。我稍后修复了它,但例外情况并未消失。一时兴起,我关闭了正在运行的IIS Express实例 - 然后运行。我假设它在某处存储了一个标志,并说表格应该已经存在。 – Rolf