学习PetShop3.0(1)用户登陆(SignIn.aspx)

转载 2006年06月21日 16:09:00

.net已经到了2005,微软的PetShop3.0也已经到了4.0,现在还学习PetShop3.0,纯属弥补以前学习.net漏掉的步骤。毕竟有些东西,不看的话,还是不知道的。网上关于PetShop的文章多是从架构或者语言特性方面来说的,所以决定先从最基本的页面分析开。

登陆页面SignIn.aspx。一个img用来注册,转到新的注册页面。有一个imagebutton,用来提交页面。两个img,都设置了alertText似乎是个好的习惯。提交按钮调用后台SubmitClicked方法。

1)   (signIn.aspx.csPetShop3.0是业务实体和业务逻辑分开的,并且在表示层上也有逻辑处理。例如WebComponents.CleanString就是用来进行输入的合法性检验。

string userId = WebComponents.CleanString.InputText(txtUserId.Text, 50);

string password = WebComponents.CleanString.InputText(txtPassword.Text, 50);

     首先,判断输入字符串长度,超过最长长度则截取。然后替换掉一些危险的字符’ ” , <, >,’ ’

     for (int i = 0; i < inputString.Length; i++) {

                       switch (inputString[i]) {

                            case '"':

                                 retVal.Append("&quot;");

                                 break;

                            case '<':

                                 retVal.Append("&lt;");

                                 break;

                            case '>':

                                 retVal.Append("&gt;");

                                 break;

                            default:

                                 retVal.Append(inputString[i]);

                                 break;

                       }

                   }

 

                   // Replace single quotes with white space

                   retVal.Replace("'", " ");

2)   (PetShop.Web.ProcessFolw.AccountController.cs)接下来进行正式的帐户登陆。accountController.ProcessLogin(userId, password),判断返回值来表示是否登陆成功。新建业务层的account,调用account.SignIn(userId, password)来登陆帐户。

通过判断myAccountInfo来判断是否成功登陆。

Account account = new Account();

AccountInfo myAccountInfo = account.SignIn(userId, password);

3)   似乎是PetShop3.0 的亮点之一,充分使用了语言本身的特性,动态创建Dao层,避免了原来那些创建模式的弊端。(PetShop.BLL.Account.cs)account.SignIn的方法如下。

public AccountInfo SignIn(string userId, string password) {

              if ((userId.Trim() == string.Empty) || (password.Trim() == string.Empty))

                   return null;

              IAccount dal = PetShop.DALFactory.Account.Create();

              AccountInfo account = dal.SignIn(userId, password);

              return account;

         }

 这里PetShop.DALFactory.Account.Create()利用了依赖注入。利用WebConfig读去要新建的类的名字。<add key="WebDAL" value="PetShop.SQLServerDAL" />表示该类支持SQL.新建一个DAL层的Account的实例。

public static PetShop.IDAL.IAccount Create()

         {            

              string path = System.Configuration.ConfigurationSettings.AppSettings["WebDAL"];

              string className = path + ".Account";

              return (PetShop.IDAL.IAccount) Assembly.Load(path).CreateInstance(className);

         }

4)   (PetShop.DALFactory.Account.cs) AccountInfo account = dal.SignIn(userId, password)开始数据层的访问。传入用户名和密码。如果有返回值说明用户存在。返回一个AccountInfo实体类。

5)   (回到PetShop.Web.ProcessFolw.AccountController.cs)成功登陆开始页面导向。返回到原来登陆的页面。并把帐户信息存入session

     if (myAccountInfo != null) {

                   HttpContext.Current.Session[ACCOUNT_KEY] = myAccountInfo;

                   if (FormsAuthentication.GetRedirectUrl(userId, false).EndsWith(URL_DEFAULT)) {

                       FormsAuthentication.SetAuthCookie(userId, false);

                       HttpContext.Current.Response.Redirect(URL_ACCOUNTSIGNIN, true);

                   }else{

FormsAuthentication.SetAuthCookie(userId, false);

         HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(userId, false), true);

                   }

Ubuntu 12.04 如何使用其他用户登录

1、设置root用户登录密码 使用“ctrl+alt+t”打开终端,然后输入命令:  #sudo passwd root  然后根据提示输入本次登录的用户名所对应的密码,然后再设置root 密码,请...
  • hhwahzl
  • hhwahzl
  • 2015年06月08日 11:30
  • 1211

Struts2 + Hibernate实现用户登陆功能

先建立项目,根据需要加入框架支持。 先加入Hibernate: 再加入Struts2: 支持加入后,先建立一张用户表。 CREATE TABLE T...
  • u013189665
  • u013189665
  • 2014年03月19日 23:08
  • 870

PHP用户登录功能实现

PHP用户登录功能实现设计数据库连接,简单查询,表单提交,直接上代码,大家很容易明白。 我建了一个很简单的数据库,表单包括用户名,ID,密码。包括 用户登录界面,登录处理文件,连接数据库文件...
  • qq_20881087
  • qq_20881087
  • 2015年07月21日 20:34
  • 1777

模拟用户登录效果

标题package sun.rain.amazing;import java.util.ArrayList; import java.util.List; import java.util.Scann...
  • sunrainamazing
  • sunrainamazing
  • 2017年02月16日 20:32
  • 422

Linux查看当前登录用户并踢出用户

1、查看当前登录用户 [wilsh@lcl ~]$ whatis w w                    (1)  - Show who is logged on and what they a...
  • longyinyushi
  • longyinyushi
  • 2015年11月06日 13:03
  • 3076

Node.js学习(四)——实现用户登录功能

Node.js学习(四)——实现用户登录功能
  • flygoa
  • flygoa
  • 2016年10月09日 15:11
  • 4589

Linux用户管理 ----- 禁止用户登陆

Linux下的用户主要分为两种,一种是系统用户,一种是普通管理用户, 系统用户和普通用户的区别就是,添加的系统用户不会出现在登陆界面,而添加的普通用户则会默认的出现在登陆界面上. 如何分辨系统用...
  • duandianR
  • duandianR
  • 2016年12月18日 21:58
  • 391

SQLite实现用户登录功能

查询
  • southhhhh
  • southhhhh
  • 2017年12月21日 17:23
  • 82

判断用户是不是第一次登陆

SharedPreferences sharedPreferences = this.getSharedPreferences( "share", MODE_PRIVATE); boole...
  • aicpzl
  • aicpzl
  • 2016年04月18日 09:59
  • 1854

SSM框架下的用户登录系统,并实现增删改

实现功能:  (1)连接数据库,实现数据库中已存用户的成功登陆,或向数据库中添加未有的用户  (2)在界面中显示数据库中所有人名单  (3)管理员可以像数据库中添加用户,删除用户,修改用户  ...
  • qq375688290
  • qq375688290
  • 2017年12月19日 20:52
  • 108
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习PetShop3.0(1)用户登陆(SignIn.aspx)
举报原因:
原因补充:

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