ASP.NET 网站管理工具是ASP.NET2.0以来VS提供的操作Web.config的GUI.使用起来比直接编辑Web.config方便一些.但初始化配置时会遇到以下麻烦.
参考几个blog和俺自己的实验,总结点东西写写.
1、打开ASP.NET网站管理工具
有两个方法可以打开这个工具。
(1)通过菜单-》项目-》ASP.NET配置打开。如下图所示
(2)在解决方案资源管理器里边打开,如下图所示
打开的ASP.NET网站管理工具如图所示:
2、没有安装SQLEXPRESS的困难
在安装VS时,如果没有安装SQLExpress,点击安全选项卡,经过漫长的等待后,可以看见如下提示:
找不到数据库。如果安装了SQLExpress则不会出现这种情况。
为啥?
如果安装了SQLExpresss,则当你使用管理工具时,系统如果发现没有数据库,会自动在App_Data文件夹下创建并组装一个数据库。使用默认的连接字符串就能建立到该数据库的链接。
没安装,不会创建这个数据库,也没有配置别的数据库,当然就找不到SqlServer数据库了。。。
3、网站数据库的初始化配置
(1)初始化数据库位置
我安装VS时没有安装SQLEXPRESS,而是单独安装了SQLServer2008.数据库配置遇到了点麻烦。
ASP.NET网站的默认数据库链接字符串为:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
.在IIS管理器里边可以看到:
使用了SQLEXPRESS.我没装,资格字符串无效,需要手动在Web.config 里边设置.(注:安装VS后这个字符串在C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIGmachine.config 中,被所有的网站默认继承下来.)
打开WebConfig文件,设置连接字符串如下:
<connectionStrings>
<clear/>
<add name="ConnectionString" connectionString="Data Source=ZYQ-PC\SQL2008;Initial Catalog=TestDB;User ID=sa;Password=********;"/>
</connectionStrings>
我是一SQL2008下的TestDB数据库作为网站的数据库.
(2)初始化数据库内容
在路径C:\Windows\Microsoft.NET\Framework\v2.0.50727下,找到aspnet_regsql.exe,双击打开ASP.NETSQLServer安装向导,按照提示将刚才设置的数据库初始化.这个工具在数据库中添加了一些表和存储过程,如下图所示:
如果嫌使用aspnet_regsql.exe不过瘾,可以找到C:\Windows\Microsoft.NET\Framework\v2.0.50727文件夹下的几个SQL文件手动安装(InstallCommon.sql、InstallMembership.sql、InstallPersistSqlState.sql、InstallPersonalization.sql、InstallProfile.SQL、InstallRoles.sql、InstallSqlState.sql、InstallSqlStateTemplate.sql、InstallWebEventSqlProvider.sql)。工具其实就是使用了这几个SQL文件组装数据库的。
4、设置membership和roleManager 以使用配置工具
(此处内容来自http://www.cnblogs.com/wqq4522/archive/2010/04/22/1717898.html,因为设置的内容一样,我就把它复制到我的WebConfig里边了)
在system.web节点下添加membership节点。
<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15" hashAlgorithmType="">
<providers>
<clear/>
<add connectionStringName="ConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
属性解释说明:
defaultProvider:提供程序的名称。默认为 AspNetSqlMembershipProvider。如果你有多个Provider的话,指定一个默认值是明智的做法
userIsOnlineTimeWindow:指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。
hashAlgorithmType:用于哈希密码的算法的标识符,或为空以使用默认哈希算法。connectionStringName:membership数据库的连接名称。
enablePasswordRetrieval:指示当前成员资格提供程序是否配置为允许用户检索其密码。
enablePasswordReset:指示当前成员资格提供程序是否配置为允许用户重置其密码。
requiresQuestionAndAnswer:指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。
applicationName:应用程序的名称。
requiresUniqueEmail:指示成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。
passwordFormat:指示在成员资格数据存储区中存储密码的格式。值可选Clear、Encrypted 和 Hashed。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。
maxInvalidPasswordAttempts:锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。
minRequiredPasswordLength:密码所要求的最小长度。
minRequiredNonalphanumericCharacters:有效密码中必须包含的最少特殊字符数。
passwordAttemptWindow:在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。这是为了防止不明来源反复尝试来猜测成员资格用户的密码或密码提示问题答案的额外措施。
passwordStrengthRegularExpression:计算密码的正则表达式。
为membership配置web.config后,再配置其角色管理roleManager,也是在system.web下。
<roleManager enabled="true" cacheRolesInCookie="true">
<providers>
<clear/>
<add connectionStringName="ConnectionString" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
属性解释说明:
cacheRolesInCookie:指示当前用户的角色是否已缓存在某个 Cookie 中。
当 CacheRolesInCookie 属性在配置文件中设置为 true 时,每个用户的角色信息就会存储在客户端上的某个 Cookie 中。当角色管理检查确定某个用户是否属于某个特定角色时,在调用角色提供程序在数据源中检查角色列表之前,将先检查角色 Cookie。该 Cookie 在客户端上会动态更新以缓存最近已验证的角色名称。
web.config就配置差不多了。
5、设置完成后
再次打开ASP.NET网站管理工具,点击安全选项卡,几乎不需要等待就能看到如下界面:
在这里可以进行很多操作.操作方法可以参考
http://www.cnblogs.com/wqq4522/archive/2010/04/22/1717898.html
http://www.cnblogs.com/ajiaojiao0303/archive/2010/11/25/1888178.html
这里就不再介绍了.