asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET多频道网站架构实现方法[2]


发布日期:2018年07月26日
 
ASP.NET多频道网站架构实现方法[2]

经验分享

上述的Model部件拆分方式适用于业务功能比较复杂的大型项目要求团队内部有着明确细化的分工合作但如?????? ?o?果面对的是中小型项目该方式很有可能成为开发效率的瓶颈这主要是由项目特点决定的中小型项目业务功能相比大型项目没有那么复杂开发人员数量也比较有限往往一个人要负责整个模块的开发在这种情况下架构层次过于繁多每次修改一个层时其他相关层也得跟着同步修改这样反而影响了开发效率

实现Passport机制

很多网站都采用Session来存放个人信息比如登录信息并以次作为用户登录与否的判断依据但Session有一个缺陷就是无法在多个Web应用中共享一个Web应用生成的Session只能由他自己使用哪种方法可以在多个Web应用中实现数据共享呢?答案是CookieCookie将信息存放于客户端 并在需要时发送回服务器端

Passport即通行证是目前普遍采用的一种用户身份认证机制简单来说就是一次登录全站通行这也正是我们的要求

这里讨论的通行证机制基于Cookie实现也比较方便其中的关键点是Cookie的Domain属性设置Domain属性表示Cookie信息回发的目标域也就是接收Cookie的域接收Cookie的域必须与发送Cookie的域一致否则无效比如发送域为blogmysitecom则接收域可以设为blogmysitecommysitecomnewsmysitecomblogyoursitecom为无效接收域要想让所有频道都能接收到Cookie必须将Domain属性设置为不带二级域名前缀的形式mysitecommysitecomcnmysitenet

登录成功后向客户端发送相应Cookie其中可以包括一些全局信息比如用户编号用户名等用户退出时删除相应Cookie特别要注意的是删除Cookie时也要设置正确的Domain属性

关于该Passport机制还有两个问题值得讨论

aCookie的过期时间

有两种方案可以采用一种是默认方式即不设置Cookie的Expires属性采用这种方案时Cookie存放于内存中在浏览器关闭前Cookie将一直存在也就是一直处于登录状态这种方式主要用于对信息安全要求不是很高的网站比如娱乐休闲类网站;另一种是指定明确的过期时间一般情况下会将用户最后一次访问网站的时间加上一个超时时间段作为过期时间有点类似于asp中的session超时机制这种方式主要用于对安全性要求比较高的网站比如网上银行电子邮箱等

bCookie的信息安全

由于Cookie是以明文方式传递数据不可避免的存在安全隐患因此对重要数据的加密是非常有必要的加密可以采用可逆算法比如DES

创建Web Project

前文已提过Web Project的创建比较灵活既可以创建于不同的开发者电脑也可以创建于同一台电脑这主要取决于开发团队规模

部署

分别部署各频道设置二级域名将WebConfig中的相关配置改为生产环境的实际数据

其中比较繁复的工作就是各频道中相同部分的部署比如说网站头部(Logo导航栏等)网站底部(版权声明联系方式等)图片CSSJavaScript等当然也可以把这些公用资源单独部署于一个频道中以供其他频道调用但这样做就破坏了各频道松耦合的特性如果用于存放公用资源的频道出了问题那其余频道也将无法正常使用

结束

本文讨论了aspnet中多频道网站架构的一种实现方法由于涉及到的内容较多无法一一展开但对其中的重点部分还是多加了点笔墨希望对你有用:)

[] []

               

上一篇:ASP.NET HTTP运行时组成详解(上)

下一篇:ASP.NET多频道网站架构实现方法[1]