petshop4.0 登录问题

新手 初次接触petshop4.0

刚上来  读代码读到用户登录  和注册的时候就懵了~  为什么 没有后台代码呢?  连触发他验证或者注册的事件都没有  和数据库里面进行比对的代码在哪呢? 这个问题 困扰了我很久(不要笑啊~).

因为login控件没学过 所以感觉应该是和这个控件有关 就先研究下login控件

顾名思义login控件肯定是 和用户登录之类的有关  她是会通过Login1_Authenticate事件来对数据库进行比对 来验证密码~  通过事件这一块就不写了~  可是petshop中  这个控件根本也没有这个事件啊  那他是怎么处理的呢  后来 发现 可能是和membership有关~  membership 就是用来 提供用户验证功能的  login 在没有指定事件的时候 缺省的就会找membership   其实你代码什么也不用谢  这个微软已经给你封装好了~~ 你只要稍微的配置一下web.config文件就可以了  真的是 很方便 也很神奇  虽然是很方便  但是也造成了 我根本不知道是怎么一回事

membership :

首先新建一个空的数据库  然后在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727这个路径下找到aspnet_regsql.exe这个EXE程序双击运行 按照提示 指定到你刚才新建的数据库 点击完成  哦了 微软已经帮你把所需要的所有数据库表 和关系表都建好了  是不是很方便啊 ~~ 不管他

配置web.config文件

<authentication mode="Forms">//将windows改为forms
  <forms loginUrl="login.aspx" name=".aspxlogin"/> //如果你不指定的话 默认的登录页面就是login.aspx 想自己定义就得在这里面更改
</authentication>

 

在<system.web>节点下添加

<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>

<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>

//这些就是设置一些参数 或者说是规则 每个字段什么意思我就不一一介绍了 百度都知道~~

对了 还得给一个连接字符串

<add name="ConnectionString" connectionString="server=(local);user id=mspetshop;password=pass@word1;database=MSPetShop4Services;min pool size=4;max pool size=4;packet size=3072" providerName="System.Data.SqlClient"/>

ok前面的工作做完了

新建一个页面

随便起名 添加一个CreateUserWizard控件 这个是创建用户的 只需要指定一个属性ContinueDestinationPageUrl 就是注册成功后 跳转的页面 如果缺省会默认为default.aspx页面

再新建一个页面 添加一个login控件 这个是 登录的页面什么也不用管了   ok运行一下看看 先注册一个用户 再去登录一下  是不是很神奇 代码我们什么也没写  还可以打开数据库 看一下user表 里面就是我们注册的信息  有人说 密码怎么很奇怪啊  那就对了 因为使用了加密  如果不想加密的话就把passwordFormat属性设置为clear 对了注册密码的时候得是七位还得有一个特殊字符

好了至此 我的个人体会就写完了 可能不一定对 也不一定全 欢迎纠正和交流

posted @ 2010-08-02 10:29  小火龙果  阅读(468)  评论(4编辑  收藏  举报