欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2012年11月10日 15:06:21   作者:  
服務(Service)對于大家來說一定不會陌生,它是Windows 操作系統(tǒng)重要的組成部分。我們可以把服務想像成一種特殊的應用程序,它隨系統(tǒng)的“開啟~關閉”而“開始~停止”其工作內容,在這期間無需任何用戶參與

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

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

復制代碼 代碼如下:

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 將其加載到系統(tǒng)服務中:

 

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

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

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

flashmeg

     嘗試點擊“View the message”,便會顯示下圖界面(其實這個界面我已經不能從當前桌面操作截圖了,是通過Virtual PC 截屏的,其原因請繼續(xù)閱讀)。注意觀察可以發(fā)現(xiàn)下圖的桌面背景已經不是Windows 7 默認的桌面背景了,說明AlertService 與桌面系統(tǒng)的Session 并不相同,這就是Session 0 隔離作用的結果。

Session 0 隔離原理

     在Windows XP、Windows Server 2003 或早期Windows 系統(tǒng)時代,當?shù)谝粋€用戶登錄系統(tǒng)后服務和應用程序是在同一個Session 中運行的。這就是Session 0 如下圖所示:

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

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

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

Session 檢查

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

可看到AlertService 處于Session 0 中:

再來看看Outlook 應用程序:

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

Service 下載

作者:李敬然(Gnie)
出處:(http://www.cnblogs.com/gnielee/)

您可能感興趣的文章:

相關文章

  • asp.net 無刷新分頁實例代碼

    asp.net 無刷新分頁實例代碼

    asp.net 無刷新分頁實例代碼,需要的朋友可以參考一下
    2013-03-03
  • asp.net 下載文件時根據(jù)MIME類型自動判斷保存文件的擴展名

    asp.net 下載文件時根據(jù)MIME類型自動判斷保存文件的擴展名

    如果我們沒法正確判斷下載源的文件類型的話,就無法保存為正確的文件格式,會給后續(xù)操作及人工閱覽造成困擾。 所幸的是,WebRequest可以給出下載源的MIME信息,這讓我們可以確定文件的真實格式,并以此來決定最終的存儲擴展名。(
    2009-11-11
  • 詳細說明asp.net中datareader 和 dataset 的區(qū)別

    詳細說明asp.net中datareader 和 dataset 的區(qū)別

    asp.net中datareader 和 dataset的區(qū)別主要是在獲取數(shù)據(jù)的機制和獲取數(shù)據(jù)的方式方面,下面我們來看教程
    2013-08-08
  • .NET驗證組件Fluent Validation使用指南

    .NET驗證組件Fluent Validation使用指南

    本文介紹了.NET驗證組件Fluent Validation,并通過實例告訴我們這個驗證組件的使用方法,以及與asp.net mvc驗證庫的整合方案,這里推薦給有相同需求的小伙伴
    2014-11-11
  • ASP.NET Core全面掃盲貼

    ASP.NET Core全面掃盲貼

    本篇文章主要介紹了.NET Core,.NET Core是一個開源通用的開發(fā)框架,支持跨平臺,即支持在Window,macOS,Linux等系統(tǒng)上的開發(fā)和部署有興趣的可以了解一下。
    2017-03-03
  • asp.net 控件驗證 FCKeditor

    asp.net 控件驗證 FCKeditor

    FCKEditor是一個很不錯的在線編輯器,可稱得上完美,但是它有一個問題,就是在使用RequiredFieldValidator進行驗證的時候,即使內容不為空,也需要點擊兩次才能完成
    2009-06-06
  • .NET生成水印更好的方法實例代碼

    .NET生成水印更好的方法實例代碼

    這篇文章主要給大家介紹了關于.NET中生成水印更好的方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用.NET具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • 淺談ASP.NET Core中間件實現(xiàn)分布式 Session

    淺談ASP.NET Core中間件實現(xiàn)分布式 Session

    這篇文章主要介紹了淺談ASP.NET Core中間件實現(xiàn)分布式 Session,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • .NET6中使用CuteEditor詳解

    .NET6中使用CuteEditor詳解

    本文詳細講解了.NET6中使用CuteEditor的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • Asp.net core WebApi 使用Swagger生成幫助頁實例

    Asp.net core WebApi 使用Swagger生成幫助頁實例

    本篇文章主要介紹了Asp.net core WebApi 使用Swagger生成幫助頁實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04

最新評論