一、任务简介:
账号同步任务,同步的对象是数据库的账户信息和发布机的本地账户,它是一个后台的服务程序,监听一个端口,接收客户端的请求,处理来自客户端的四种命令:(1)扫描全表,同步账号;(2)添加指定的账号;(3)禁用指定的账号(4)生成BHO配置文件。其中命令(1)最为复杂,需要同时考虑数据库中的账号和本地的账号;所有的同步基础以数据库中的账号为准,如果数据库中有,但是本地没有,那就在本地自动新建账号;如果数据库没有,但是本地没有,那就将本地的账号禁用。具体的逻辑可参考代码。
二、核心代码剖析:
(1)AccounsSyncService程序分析:
n Config文件夹,配置文件
n AccountsSyncService.cs,账号同步的主程序:
p 启动服务,开启一个线程,监听端口:StartService()、OnStart()、Listen()
p 接收账号同步的命令,并执行账号同步的四种操作:AccounsSync()
p 初始化数据库连接:InitializeTables()
p 创建BHO页面密码填充的配置文件:CreateBhoLoginXml()
(2)AccountManagement程序分析:
n AccountManager.h、AccountManager.cpp:包括添加账号、删除账号、添加组、删除组、禁用账号、启用账号、修改密码等操作
(3)ServiceInstall程序分析:后台服务程序安装文件生成项目,可以将后台的服务程序自动生成可以双击安装的可执行文件“.msi”文件
原文地址:http://11416733.blog.51cto.com/11406733/1784570