国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net中穿透Session 0 隔離(一)

2024-07-10 13:23:36
字體:
來源:轉載
供稿:網友

Windows 服務在后臺執行著各種各樣任務,支持著我們日常的桌面操作。有時候可能需要服務與用戶進行信息或界面交互操作,這種方式在XP 時代是沒有問題的,但自從Vista 開始你會發現這種方式似乎已不起作用。

Session 0 隔離實驗
下面來做一個名叫AlertService 的服務,它的作用就是向用戶發出一個提示對話框,我們看看這個服務在Windows 7 中會發生什么情況。

復制代碼 代碼如下:


using System.ServiceProcess;
using System.Windows.Forms;
namespace AlertService
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
MessageBox.Show("A message from AlertService.");
}

protected override void OnStop()
{
}
}
}



程序編譯后通過Installutil 將其加載到系統服務中:

asp.net中穿透Session 0 隔離(一)

 

     在服務屬性中勾選“Allow service to interact with desktop” ,這樣可以使AlertService 與桌面用戶進行交互。

asp.net中穿透Session 0 隔離(一)

在服務管理器中將AlertService 服務“啟動”,這時任務欄中會閃動一個圖標:

點擊該圖標會顯示下面窗口,提示有個程序(AlertService)正在試圖顯示信息,是否需要瀏覽該信息:

asp.net中穿透Session 0 隔離(一)

Session 0 隔離原理

     在Windows XP、Windows Server 2003 或早期Windows 系統時代,當第一個用戶登錄系統后服務和應用程序是在同一個Session 中運行的。這就是Session 0 如下圖所示:

asp.net中穿透Session 0 隔離(一)

     但是這種運行方式提高了系統安全風險,因為服務是通過提升了用戶權限運行的,而應用程序往往是那些不具備管理員身份的普通用戶運行的,其中的危險顯而易見。

     從Vista 開始Session 0 中只包含系統服務,其他應用程序則通過分離的Session 運行,將服務與應用程序隔離提高系統的安全性。如下圖所示:

asp.net中穿透Session 0 隔離(一)

     這樣使得Session 0 與其他Session 之間無法進行交互,不能通過服務向桌面用戶彈出信息窗口、UI 窗口等信息。這也就是為什么剛才我說那個圖已經不能通過當前桌面進行截圖了。

asp.net中穿透Session 0 隔離(一)

Session 檢查

     在實際開發過程中,可以通過Process Explorer 檢查服務或程序處于哪個Session,會不會遇到Session 0 隔離問題。我們在Services 中找到之前加載的AlertService 服務,右鍵屬性查看其Session 狀態。

asp.net中穿透Session 0 隔離(一)

可看到AlertService 處于Session 0 中:

asp.net中穿透Session 0 隔離(一)

再來看看Outlook 應用程序:

asp.net中穿透Session 0 隔離(一)

     很明顯在Windows 7 中服務和應用程序是處于不同的Session,它們之間加隔了一個保護墻,在下篇文章中將介紹如何穿過這堵保護墻使服務與桌面用戶進行交互操作。

Service 下載

作者:李敬然(Gnie)
出處:()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘谷县| 九台市| 六枝特区| 成安县| 沁源县| 沙河市| 崇明县| 桂阳县| 盐津县| 襄垣县| 星座| 淄博市| 吉林省| 瑞丽市| 海阳市| 调兵山市| 新丰县| 江永县| 临潭县| 安陆市| 吉木萨尔县| 蒲江县| 青川县| 年辖:市辖区| 扬州市| 偃师市| 汕头市| 大方县| 濮阳县| 调兵山市| 瑞昌市| 新巴尔虎左旗| 崇仁县| 河间市| 花垣县| 桦川县| 垣曲县| 繁昌县| 五峰| 宁明县| 喀什市|