您可以在这里快速查找:


 
您的位置: 编程学习 > asp.net教程 > 200509
文章分类

Java技术
2005: 03 04 05 06 07 08
09 10 11 12
2006: 01 02

Asp.net
2005: 07 08 09 10 11 12
2006: 01 02

VB编程
2006: 02

Asp编程
2005: 11 12
2006: 01 02

C++/VC
2005: 10 11 12
2006: 01 02

Delphi
2005: 12
2006: 01 02

其它

 本文章适合所有读者

Login.aspx

emil_sissi

                     login.aspx

用户随时都可以通过click the "Sign In" button in the header (_Header.ascx)。

IbuySpy使用的是Forms-based authentication,which is enabled by making a entry in the application´s Web.config  file.

有些页面(CheckOut.aspx。。。)必需认证了的用户才能够进入,如何确定该用户是否认证用户呢?
    这些页面并不是在该页中书写代码来验证进入者是否为认证用户。
    它们是在webconfig中间设置了进入障碍。
   
       
           
               
           

       

   

那么,在这些页面无法进入的情况下,我们会跳转到另外的页面,而跳转到哪个页面也是有webconfig来设置的。
在Web.config 中的The loginurl attribute specifies the login page that the application should redirect to any time a user attempts to access an application resource that does not allow anonymous access.

                  
         
       

   

 


在login。aspx页面中:

如果login成功了,那么the LoginBtn_Click event handler performs three important actions: 与代码进行对照。
1,将临时cart中的items转到个人的cart中,这样信息就不会丢失,有助于以后的使用。
    shoppingCart.MigrateCart(tempCartID, customerId);
    实际上,只是将原来购物车的TemperaryID改成了该用户的名字而已。

2,给client一个personalization的cookie,那么在以后进入default。aspx时,能够看到customed personal welcome。
    Response.Cookies["IBuySpy_FullName"].Value = customerDetails.FullName;

3,调用RedirectFromLoginPage() static method ,This is a built-in ASP.NET class。 作用是:这个method发出一个mac的加密的cookie认证ticket到客户端浏览器来确认认证了的客户username。在这个程序中,我们使用Customer ID来作为客户的认证名。在随后的对这个程序的请求中,我们仍然可以使用这个用户名。在发出了认证ticket到客户端浏览器后,这个method即RedirectFromLoginPage()能够使浏览器返回到the login page navigation came from.
(originating page?default.aspx,其实这里的意思是:如果试图进入restricked的页面,同时你还没有login的话,会redirect到login page,而后,回到restricked page,如果是直接点击上面的sign in标签的话,而后,会回到default。page)
    FormsAuthentication.RedirectFromLoginPage(customerId,RememberLogin.Checked);


实际上,用来标志用户身份的CustomerID也就是该用户的ShoppingCartID,用来标志购物车
从这句代码可以看出:
// Migrate any existing shopping cart items into the permanent shopping cart
       shoppingCart.MigrateCart(tempCartID, customerId);


1,CustomerID是由login的用户的用户名和密码确定的:
       IBuySpy.CustomersDB accountSystem = new IBuySpy.CustomersDB();
       String customerId = accountSystem.Login(email.Text, password.Text);

2,ShoppingCartID是由用户名(已登陆)或者TemperaryID决定。
       IBuySpy.ShoppingCartDB shoppingCart = new IBuySpy.ShoppingCartDB();
       String tempCartID = shoppingCart.GetShoppingCartId();
而在现实中,情况的确也是这样:
// If the user is authenticated, use their customerId as a permanent shopping cart id
            if (context.User.Identity.Name != "") {
                return context.User.Identity.Name;
            }