zoukankan      html  css  js  c++  java
  • 让SQL Server Compact支持 Membership, Role and Profile provider

    使用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的部署问题,可以参考这里:http://www.cnblogs.com/TomXu/archive/2011/11/25/2263225.html

  • 相关阅读:
    C/C++之文件打开方式差别
    C/C++获取文件大小
    dedecms使用
    TCP/IP概念简述
    protobuf新增message报错:类型已存在
    亚马逊MWS开发套路演示
    请求MWS报错401:Access Denied
    敏捷开发
    过滤器和拦截器的区别
    防盗链
  • 原文地址:https://www.cnblogs.com/flyinghigher/p/2792489.html
Copyright © 2011-2022 走看看