![]() |
中国哲士网“百科知识”为您提供生活百科 |
Microsoft Windows XP共享环境的探讨
用户在安装系统的过程中,会创建他们各自的帐户,但是也可以在控制面板中进行,这些帐户的设置基于Windows 2000的用户配置文件(profiles)。默认的,这些帐户没有密码保护,用户可以对其进行设置。 如过有多个用户,登陆时系统将会弹出一个欢迎菜单每个用户都有一个相对应的图象,点击该图像即可登陆Windows XP系统。 快速用户切换 例如,父亲回来了,他使用PowerPoint开始工作。这时儿子要求用一会计算机,他返回到欢迎界面,单击“儿子”图标,然后登陆并开始玩游戏。父亲这时仍处于登陆状态,儿子无须注销就可以让父亲重新快速切换会刚才打开的帐户,他的PowerPoint仍然打开着。当然,Internet连接也会被保持! 远程桌面 对于这个特性,我想如果Microsoft不认真对待它的安全问题,将是未来系统中的一大严重安全隐患!下文将进一步探讨 需求和基础结构 在Windows XP提供了一个基础结构,这个基础结构支持所有版本的Windows XP,包括Professional和Home版本。这个基础结构支持用户数据、用户设置以及计算机设置的分离状态。应用程序适当的使用这个构造将有如下益处: 用户可以更方便的备份个人的文档和设置,而不必备份整个程序和系统文件。 使用默认的My Document文件夹存储用户数据。 BOOL WINAPI WTSRegisterConsoleNotification( HWND hWnd, // Window handle DWORD dwFlags // Flags ); 被注册的 HWND 接收到 WM_WTSSESSION_CHANGE 消息。 在 dwFlags 你可以指定: NOTIFY_FOR_THIS_SESSION NOTIFY_FOR_ALL_SESSIONS WTS_CONSOLE_CONNECT, WTS_CONSOLE_DISCONNECT, WTS_REMOTE_CONNECT WTS_REMOTE_DISCONNECT lParam 包含了会话相关的 sessionId 。 当进程不再需要或者中断这些通知,要调用下面的代码进行注销的工作。 BOOL WINAPI WTSUnRegisterConsoleNotification( HWND hWnd // window handle. ); HWND 值传递到 WTSRegisterConsoleNotification 作为参考计数, 所以你要精确的告知 WTSUnRegisterConsoleNotification 你调用 WTSRegisterConsoleNotification时同样的号码。 应用程序 WM_WTSSESSION_CHANGE 消息将会跟踪这些状态, 如我们请求和释放Console-specific资源。 使程序在一种指定环境中运行 1. 使用FindWindow或者FindWindowEx查找你运行的程序窗口。 2. 当程序运行时建立一个mutex或者semaphore并在退出时关闭。这样,这个全局对象将被分离,允许一个唯一的序列。 系统服务交互 1. 服务器收到来自客户端的请求进程,在这个案例中,信息可能是通过LPC或者RPC传送的,对客户端信息的获取,可以使用advapi32!CreateProcessAsUser。 2. 可以使用公共API函数WTSGetActiveConsoleSessionID() 更改进程的ID值到当前状态的ID值。 以下为译者对这篇文章的一些看法和对文章中所介绍的新特性带来得问题进行探讨 2. 对于另外一个特性:远程桌面,这个特性比较类似Windows 2000的终端服务,中文Windows 2000中就有个终端服务漏洞,不知道这次会出现什么新的定时炸弹~ 3. 简要介绍一下这篇文章所介绍的重要的新特性之一 —— 快速用户切换的常识性知识: 快速用户切换的基础是Windows 2000 Terminal Server和Windows 2000的计算机共享,在登陆时它以一个欢迎屏幕代替了传统的登陆对话框,上面有用户名、和用户设置的相应图片,而不是登陆对话框中的用户名,每个用户和Windows 2000一样,有自己的各项设置,并且所有用户都是处于登陆状态。 4.针对这个特性:快速用户切换,我想有一点非常值得注意,就是它能够支持系统同时运行着多个本地登陆用户的程序,并且Internet连接也会被保持!不能否认,这确实是操作系统中的一大突破,它把以以前只能在网络服务器中实现的多用户模式在本地登陆的用户上实现了。但是,如果说在一个用户使用计算机时,有另外一个用户在完全没有任何记录或者未经过任何确认的情况下,就可以在后台运行应用程序,那么这将对整个系统的安全性带来很大的隐患,如果在被暂时“注销”的用户,后台运行着某些非法程序,而微软为了保护用户的隐私而不会对当前运行的用户进行任何提示的话,那么让一台Windows
XP瘫痪甚至利用特殊的程序取得系统的最高权限将不是件难事!而如果微软考虑到这方面的问题,对另一个用户的应用程序进行限制,这样就很可能正常程序在执行中因为某些必要数据无法获取而意外终止,如果是重要程序的话,甚至很有可能导致系统崩溃;或者在系统出现异常时提示当前正在使用系统的用户,那么使用Windows
XP的用户就会质疑微软对用户隐私的保护是否完善。不知道微软的大师们会用什么高招解决这些问题……
|