第7天
功能:登录
数据库查询成功了,User对象创建了,可以页面跳转到Default.aspx啦,可是怎么写呢。百度,发现很多实现都是用户登录前访问某一页面,把该页面做参数传给登录页面,登录完成后再转到该页面......,想一下自己在互联网上晃悠,常常走这样的流程,嗯,挺好用的,我也这么写,抄了一段代码过来:
if (string.IsNullOrEmpty(Request.QueryString["URL"]))
{
Response.Redirect("default.aspx");
}
else
{
Response.Redirect(Request.QueryString["URL"]);
}
虽然目前没有URL参数,代码先留着呗,能登录成功跳转到Defualt.aspx就行。嘻哈哈的调试,输入用户名密码,确定......,页面仍然在Login.aspx。开始以为反应慢,然后以为IE坏了,再然后意识到程序有问题,感觉着已完成的代码是正确的,怀疑是web.config有未知的开关,百度一下没有答案,QQ上请教同学,把web.config和上面的Redirect调用都贴给他看,结果也没能解决问题。还是认真百度吧......搞了好久,最终发现了这个帖子:http://www.jb51.net/article/17407.htm,谢谢作者呀,学习到了“身份验证票”的概念,再查老项目的代码,果然也有这么一段,哎,看到也不能明白呀。果断复制粘贴,测试一下,问题真的解决了。
接着打算实现 记住密码,自动登录。在网上找到这篇帖子:http://www.tuicool.com/articles/ZFV77j,一天中剩下时间就是看它,但是哎,又是脚本,又是C#代码,心浮气躁,看不进去呀......
今天就做了这么些吧。
第8天
功能:登录
没什么办法,耐着性子看代码吧。先把两个input控件复制到页面里,然后把CheckLogin和CheckRemember两个javascript函数复制了,再读文章来理解作者的设计思路,再根据理解来看两个函数......,CheckRemember应该是正确的,但是CheckLogin应该参照着CheckRemember重新写一下。
function CheckLogin() {
var remember = document.getElementById("chkRemember");
var login = document.getElementById("chkLogin");
// 修改了“自动登录”的值,自动调整“记住密码”的值
if (login.checked == true) {
remember.checked = true;
}
}
这一步完成了,F5一下点来点去测一测,哈哈也挺好玩的。接下来是参照着写“登录”按钮的Click处理,这一步没什么好说的,就是我看到“Page.Session”和“HttpContext.Current.Session”的不同用法,就查了一下,原来是完全等效的。
最后还要抄一下页面的Page_Load方法实现......
测一下:两个都不打勾,登录一下;勾选“记住密码”,登录一下;两个都选上,再登录登录......,当一切都OK之后,感觉好好啊,我实现了一个似模似样的登录功能。
然后把密码改成MD5加密形式。还了解了一下定制的错误页面,可以参考这张帖子:
http://blog.chinaunix.net/uid-26200547-id-3494201.html,感觉只有Application_Error的方式有点价值,但是文章说会影响性能,干脆做罢,先不定制错误页面。
最后差点忘了发布。先查一下怎么发布,本地建个文件夹,项目右键-->“发布网站”到文件夹,然后用本地的IIS建立一个站点,跑一下,没有问题。然后找一台Windows Server2008(我的机子是Windwos7),建个文件夹,把文件都传过去,然后用IIS6.1添加个新的网站,忐忐忑忑的用IE访问下站点,唉,还是出问题了,报错“未能加载类
型“URLRewriter.ModuleRewrite......”。百度来解决,有说缺URLRewriter.dll文件的,我在服务器其他站点目录下搜了一下,还真找来一个,复制到自己的bin目录下,F5一下问题没解决;然后看到有人说要修改web.config,配置IIS,还有这篇文章:http://blog.csdn.net/xuejianwu/article/details/8484001,就照着抄了一遍,因为这篇文
章上的IIS是6.0版本,而我的Win7 IIS 界面已经完全不同了,于是又找到一篇http://www.cnblogs.com/lollipop/p/3545959.html;好了,我找到了dll文件放到我的bin目录下,配置了web.config,配置了IIS, 再F5,错误依旧呀......,无助的在网上游荡,快下班了,只好再去麻烦同学,他听说后直接发QQ远控请求过来,连通之后,打开IIS,选择我的网站,点了右侧的“基本设置”,然后“选择”我的应用程序池,把和我网站同名的应用程序池换成了DefaultAppPool,确定之后,再来访问。问题解决了。开发环境:Window7
IIS6.1,服务器 Server 2008, IIS6.1
到此历时8天时间,虽然登录功能未来还会修改,但可以暂时告一段落了。下一个要实现的功能:登录成功,就该见到应用本身了,目前真正的应用还没有写一行代码呢,下一步就是先搭建一个框架。