日期:2010-07-08  浏览次数:20432 次

   asp.net身份验证(登录控件),基于标准的sqlserver.(vs2005+sqlserver2005)

    转自:动态网站制作指南 | www.knowsky.com第一次在这里发贴,觉得这里很好,是因为可以强迫自己把遇到的困难,解决的方法及时的记录下来,以前做过很多东西,很久不用就忘了。写下来,算是对自己的一种勉励吧。当然希望对大家能有点帮助,但是毕竟能力有限,还要请高手们多多指教。

    装好vs2005,如果选择安装SqlExpress,一切都是默认配置好的,"login控件"拖上就能用。但是这个似乎不太够用,ok,安装 SqlServer.首先在安装上就花费了一番功夫,这里就不罗嗦了。那么该怎样配置一下呢?

    在msdn上也找到了,见下面的代码。在web.config中添加一段,就能连上数据库了。

    1 <configuration> 2 <connectionStrings> 3 <remove name="LocalSqlServer"/> 4 <add name="LocalSqlServer" 5 connectionString="Data Source=localhost;6 Initial Catalog=appservicesdb;7 Integrated Security=True" 8 providerName="System.Data.SqlClient"/> 9 </connectionStrings> 10 </configuration>这里在罗嗦几句,第七行,如果是基于window验证的就按此书写,但是(Windows 2003)的用户需要设置一下用户的,否则不能通过的。这段代码是我是用得user=***,pwd=***,因为后期我需要移植,web和sql服务器分开的,而且我比较喜欢后者。

    我非常纳闷的是第三句,不知道为什么要用remove,msdn上这么解释 :1 <connectionStrings > 2 <add />向连接字符串集合添加名称/值对形式的连接字符串。

    3 <clear />移除所有对继承的连接字符串的引用,仅允许那些由当前的 add 元素添加的连接字符串。

    4 <remove />从连接字符串集合中移除对继承的连接字符串的引用。

    5 </connectionStrings> 6 7不知大家是否在意过,而且我去掉remove这句话,会报错。经过一番折腾,其实,<connectionStrings />这段话就相当于重载,想想看,为什么在SqlExpress时能够默认连接,应该是在什么地方配置好了。以前接触过unix和linux,感受最大是他们的配置文件,所有的东西都需要你去配置,而且一但你配置好之后条理会非常清楚,全都是用文本配置的。用Microsoft的东西总是有点迷糊,不知道彼此之间的衔接,现在Microsoft感觉配置文件方面倒是好多了,有点跑题了,赶快回来。所以总有找配置文件的感觉,还别说,真是给找着了,在machine.config中有一段代码如下:1 <connectionStrings> 2 <add 3 name="LocalSqlServer" 4 connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 5 providerName="System.Data.SqlClient" 6 /> 7 </connectionStrings> 8找到源头了,就是这句话在起作用。当你启动你编辑的页面时,首先会调用你的web.config文件,当发现你的web.config中没有进行任何配置时,就去machine.config中查找。所以说就有上面的remove语句。其实不仅这样,而且LocalSqlServer也不能改,因为machine.config中的后面的provider还调用了LocalSqlServer,感兴趣的可以看看,这里就不罗嗦了。

    最后还需要提醒大家的是,machine.config中最好不要改,很可能改了某项,你的机器就出大问题了哦。

    出处:wendy BLOG http://wendy980622.cnblogs.com/archive/2006/03/09/346198.html