K_Reverter的网页开发记录

要么不做,要么就当作艺术品来做!

导航

Step1帐户登录系统(8. Step1.AccountClient的实现)

        在前面的7篇文章之中我介绍了Step1.AccountServer的实现,现在,总体的结构和5种用户登录类型都已经介绍完毕,也就是AccountServer都已经介绍完了,原计划还要介绍OAuth的,不过不论是Google 还是Yahoo对OAuth的实现,我最终都没有能够研究成功,都只是完成了登录过程,却没有实现使用登陆后得到的Token向服务器获取到信息,我会在后面的源码之中同样将这些没有研究完成的内容包含在内,感兴趣的用户可以自己去研究了。

        今天,我将介绍Step1.AccountClient的逻辑,也就是如何在一个网站应用程序上使用AccountClient来连接AccountServer,每一个网站应用程序只需要引用AccountClient库,就可以实现登录的过程,以及获得用户信息了。

        Step1.AccoutClient是一个非常简单的类库,仅仅包含两个类,AccountHelper类(包含一些静态方法,用来提供给Web应用程序使用),和一个AccountPage类(是一个页面的代码,就是包含登录和注销的页面逻辑,这个页面没有任何界面,仅仅在请求的时候进行Cookie的设置和转向)

        因为Step1.AccoutClient逻辑比较简单,这篇文章以代码为主。

        先看看Web.Config的代码,这个配置的参数因为很少,因此,仅仅在appSettings标签之中加上以下几个参数就可以了:

 

Web.Config配置代码

 

        再看看AccountHelper类:

 

AccountHelper.cs代码

 

        AccountHelper类包含一些核心的静态方法,可以在Web应用程序之中调用这些方法,不过在需要登录的时候,也可以让Web应用程序自己将页面转向到登录的页面(通过JS的方式或者其他方式都可以转向到登录页面,那个也是这个系统灵活的一个方面)

        下面是登录页面的代码,这个页面的ASPX是直接引用代码类,不作任何处理,代码非常简单: 

        <%@ Page Language="C#" AutoEventWireup="true"  Inherits="Step1.AccountClient.AccountPage" %>

        主要的内容在AccountPage类之中,代码也是很简单:

 

AccountPage.cs代码

 

        上面的网页提供三种功能:登录、注销、和处理回转请求,如果Web应用程序需要转向到此页面,只需要加上相应的action参数,最好再加上一个url参数指定操作完成之后登录回转的地址,如果不提供,将会自动读取Referrer的地址作为登录地址。

        上面就已经是所有的Step1.AccountClient的实现代码,可以看出,Step1.AccountClient实现的过程非常简单,而且和那些帐户服务API之间的没有任何关系,这正是这个系统所希望的,这样的话,AccountServer的更新,特别是添加和取消帐户服务的话,对AccountClient的程序没有任何影响。

        这个系统的设计完全是考虑到跨域名的模式的使用的,不过如果AccountClient和AccountServer是在同一个根域名下,其实是没有必要部署AccountClient的,直接使用一个指向到根域名的Cookie就可以了。

        到这篇文章为止,就已经介绍完了所有的Step1.AccountClient实现过程,下面的一篇文章将是本系列的最后一篇文章,包含一些心得和最终的所有源码下载。

posted on 2008-12-06 18:48  K_Reverter  阅读(709)  评论(3编辑  收藏  举报