您的位置:首页 > 数据库

让SQL Server Compact支持 Membership, Role and Profile provider

2012-11-28 13:57 465 查看
使用sqlserver Compact4.0的开发环境

1. VS2010SP1

2. Microsoft SQL Server Compact 4.0

3. Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0 因为SQL Server Compact 4.0是VS10之后才出来的

其中 Compact4.0解决了之前版本中使用EF时,不能将主键设置为自动增长的int类型的问题,具体请参考这里:http://msdn.microsoft.com/zh-cn/library/cc835494.aspx

然而Compact中不支持存储过程、角色的等,导致无法使用aspnet_regsql.ext注册工具。

对于该问题有个其它的解决办法。

功能描述:

实现在使用SQL Server Compact4.0数据库的网站里也能用“会员、角色、配置”功能作为表单验证等。

功能说明:

此功能由Nuget.org提供,它支持所有的SQL Sever 2005以上的版本,当然其中也包括SQL Server Compact 4.0.更多详细说明请点击这里

使用此功能的方法(只需要2个简单的步骤即可完成)

另:如果你正在用NuGet package,你仅仅需要设置roleManager-enabled=true即可。

第一步:复制"SqlCeMembershipProvider.cs、SqlCeMembershipUtils.cs、SqlCeProfileProvider.cs、SqlCeRoleProvider.cs"四个文件到/App_Code文件夹下(如果没有自己就建立一个)

第二步:修改你的web.config文件,并添加如下内容:



<connectionStrings>
<add name="ApplicationServices" connectionString="data source=|DataDirectory|\SqlCeAspnetdb.sdf"/>
</connectionStrings>

<system.web>
<compilation>
<assemblies>
<add assembly="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<membership defaultProvider="SqlCeMembershipProvider">
<providers>
<clear/>
<add
name="SqlCeMembershipProvider"
type="ErikEJ.SqlCeMembershipProvider"
connectionStringName="ApplicationServices"
applicationName="/"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
encryptionKey="FF09F72BA97CBBB5EEAAFF"
writeExceptionsToEventLog="false" />
</providers>
</membership>
<roleManager defaultProvider="SqlCeRoleProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All">
<providers>
<clear/>
<add
name="SqlCeRoleProvider"
type="ErikEJ.SqlCeRoleProvider"
connectionStringName="ApplicationServices"
applicationName="/"
writeExceptionsToEventLog="true"/>
</providers>
</roleManager>
</system.web>




那么到现在你就可以用它创建用户或者用户角色了并可以用它进行登录控制等。

源码下载

关于sqlserver Compact的部署问题,可以参考这里:/article/1308076.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐