关于Membership的设置

原创 2007年09月25日 17:44:00
 初学MemberShip,遇到一个Membership设置的问题

因为一般教程使用的示例都是SQL Server 2005 Express版本的本地 ASPNETDB.MDF文件,如果我要使用远程的Sql Server 2005服务器的话,需要进行一些设置。

Setp1:当你使用Membership, 我们可以发现ASP.NET 2.0 已经在 SQL Server 2005 Express建立了很多表(aspnet_Membership),视图,存储过程等。当时我们自己的远程服务器上并没有这些表。难道我们需要自己建?当然不用,微软给我们准备了一个工具:

%systemroot%/Microsoft.NET/Framework/v2.x/

目录下的aspnet_regsql工具

根据它的向导,可以很方便地指定你的服务器和数据库。完成之后,我们可以发现,我们的远程服务器上制定数据库上已经创建好了我们需要的表,视图,存储过程等。

Step2:这时候我们需要在web.config更改MembershipProvider

我们可以参考machine.config文件中的内容:

machine.config%systemroot%/Microsoft.NET/Framework/v2.x/CONFIG目录下)

  <connectionStrings>
    
<add name="LocalSqlServer" connectionString="data source=./SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
  
</connectionStrings>

    
<membership>
      
<providers>
        
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
      
</providers>
    
</membership>


你可以直接在machine.config里更改,不过这里一更改,会影响到以后所有ASP.NET程序的设置,所以我们还是在自己的web.config中更改比较好

web.config中,首先创建我们自己的连接字符串:

    <connectionStrings>
        
<add name="remoteSqlServer" connectionString="server=..;uid=..;pwd=..;initial catalog=.." providerName="System.Data.SqlClient" />
    
</connectionStrings>

然后修改Membershipprovider.,修改的时候需要注意一个问题,因为machine.config中已经存在一个provider了,所以你直接增加一个provider的话

        <membership>            
            
<providers>
            
            
<add name="RemoteSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="remoteSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />            
            
</providers>
        
</membership>

在程序运行中还是会去寻找在machineconfig中定义的AspNetSqlMembershipProvider,因为那个是default。所以一种选择是,我们把这个新的Provider设置为Default的。

        <membership defaultProvider="RemoteSqlMembershipProvider">
            
            
<providers>
            
            
<add name="RemoteSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="remoteSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
            
            
</providers>


另一种选择是,我们首先clear原来的provider,然后再增加自己的provider(connectiongStringName设置为我们自己的ConnectionString):

        <membership>            
            
<providers>
            
<clear/>
            
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="remoteSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />            
            
</providers>
        
</membership>
这里需要注意的另一个问题就是,provider的名字一定需要是AspNetSqlMembershipProvider,其他名字就会出现这个错误:
Default Membership Provider could not be found.
因为原来已经指定了AspNetSqlMembershipProvider为Default Provider.

membership配置篇

从.net 2.0开始  asp.net 就进入了一个倡导少写代码多配置的时期“机器先进阿 我们只要把猪赶进去 对面就会从传送带里传出香肠来!”下面就是启动机器并且赶猪的工作。在赶猪以前,我们先来了解...
  • tt03030576
  • tt03030576
  • 2007年09月02日 15:56
  • 1355

关于Membership的设置

   关于Membership的设置         初学MemberShip,遇到一个Membership设置的问题因为一般教程使用的示例都是SQL Server 2005 Express版本的本地...
  • SmartJavaer
  • SmartJavaer
  • 2007年05月13日 13:24
  • 1503

关于Membership的设置

初学MemberShip,遇到一个Membership设置的问题因为一般教程使用的示例都是SQL Server 2005 Express版本的本地 ASPNETDB.MDF文件,如果我要使用远程的Sq...
  • nuaalfm
  • nuaalfm
  • 2007年03月21日 22:15
  • 848

Membership学习(五)关于Membership的设置

初学MemberShip,遇到一个Membership设置的问题因为一般教程使用的示例都是SQL Server 2005 Express版本的本地 ASPNETDB.MDF文件,如果我要使用远程的Sq...
  • maseccc
  • maseccc
  • 2008年09月05日 12:22
  • 350

Membership用法

Membership用法详解用户与角色管理在asp.net2.0中是通过Membership和Roles两个类来实现的。Membership:用户成员账号管理,用户名、密码、邮箱等Roles:负责用户...
  • cqbsbjianxy
  • cqbsbjianxy
  • 2009年11月02日 11:32
  • 3919

ASP.NET Membership和角色管理器

实习期的总结。
  • hellobabygogo3
  • hellobabygogo3
  • 2014年07月17日 14:39
  • 3090

【IOS】Target membership

http://www.cnblogs.com/graphics/p/4117353.html 【IOS】Target membership Target membership是指X...
  • Xiejunyi12
  • Xiejunyi12
  • 2016年09月19日 22:27
  • 1845

ASP.NET MVC4 SimpleMembership 基于角色的权限管理机制(一)--基本配置与使用

以前一直在用MVC3,前段使用学习了MVC4,在做一个小示例的时候,想给注册的用户分配角色,从而实现操作访问权限,自己还是按照MVC3中的做法,可是后来发现已经不行了,甚至创建的数据库都完全不一样,查...
  • CMbug
  • CMbug
  • 2014年06月12日 15:36
  • 1251

Membership的配置和使用

运行aspnet_regsql.exe  在 C:/Windows/Microsoft.NET/Framework/v4.0.30319  运行后那是一路的next,注意要选择个数据库就行了,配完后,...
  • loverszhaokai
  • loverszhaokai
  • 2010年08月27日 16:00
  • 785

MemberShip加密处理方式

先看一下Code:static void Main(string[] args) { string password = "******"; //[这里密码就不写出...
  • Michael193
  • Michael193
  • 2010年04月21日 09:46
  • 2537
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Membership的设置
举报原因:
原因补充:

(最多只允许输入30个字)