学习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);

                   }

相关文章推荐

petShop4.0_51aspx

  • 2011-03-17 10:48
  • 1.88MB
  • 下载

login aspx实现登陆功能 400电话

default aspx允许所有用户访问。login aspx实现登陆功能 400电话,reguser aspx实现注册用户功能。1 首先我们新建一个网站2 进入c:\windows\microsof...

win7 sp1 多用户登陆

  • 2012-10-15 17:52
  • 550KB
  • 下载

用户创建,删除and并发注册and系统登陆的API研究(学习汇总网上资料)

比如有一个外围支持系统,用户需要在外围系统登录之后点个link就可以登录到Oracle ERP系统中,那么我们需要先把外围系统的用户创建在Oracle ERP中,并且分配职责给他。 DECLARE a...

petShop4.0_51aspx.rar

  • 2011-12-22 23:56
  • 1.88MB
  • 下载

开源中国iOS客户端学习——(十二)用户登陆

上一篇博客  开源中国iOS客户端学习——(十一)AES加密 中提到将用户名和密码保存到了本地沙盒之中,在从本地读取用户名和密码,这是一个怎样的过程? -(void)saveUserNameAndP...

petShop4.0_51aspx.rar

  • 2008-03-26 14:26
  • 1.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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