關於如何利用COM+,來提高ASP執行許可權的問題!

zhjian6發表於2004-10-15

        我們知道,想在一個作業系統執行任何一個操作都是需要使用者的。然後作業系統會檢查該使用者是否有許可權執行這個操作的許可權,如果有,就會執行,如果沒,就會拒絕。這和我們瀏覽網站是一樣的道理,當我們在客戶端輸入一串URL並執行時,其實是向服務端傳送要瀏覽的請求,在作業系統來看,它也是一個操作,也是需要使用者的。以windows為例,它是用:匿名訪問 Internet 資訊服務的內建帳戶來執行這個操作的,所以如果你的網頁檔案如果去掉這個使用者(通常是EVERYONE或者是USERS)的許可權,就會跳出對話方塊,要求輸入使用者名稱和密碼。

       但是在實際情況中,我們經常有遇到這樣的問題:如何用匿名訪問 Internet 資訊服務的內建帳戶執行它更高的許可權。這樣說可能很難理解,用例項來說。比如:我們在網站上(匿名訪問的那種)做了一個申請使用者的功能,也就是說要在ASP程式碼中建使用者,而且是WINDOWS裡的使用者,不是資料庫中的使用者。但是,如果要建使用者就要到administrators組的許可權,很明顯,我們不可能把,匿名訪問 Internet 資訊服務的內建帳戶 新增到administrators組裡。那麼我該如何去做呢?

        這個時候就可以用到COM+(當然COM+的好處不只如此),用VB或者VC做一個DLL,裡面有新建使用者的功能,然後開一個介面出來。然後註冊該DLL,把它加到COM+裡。

具體操作是:
       開始->程式->管理工具->元件服務->元件服務->計算機->我的電腦->COM+應該程式->右擊新建->應用程式->下一步->建立一個空的應用程式->輸入名稱(隨便)->選擇伺服器應用程式->下一步->選擇此使用者->輸入有administrators組裡的使用者和密碼->完成!           

        接下來,在應用程式下就有剛才建好的應用程式名稱,在它的下一級,有一個元件,右擊它,新建元件,把自己做好的已經註冊的DLL匯入進去就可以了!

        最後,就是如何在ASP裡引用了,其實和引用其它的DLL是一樣的,set obj=server.CreateObject("") ,執行那個介面就可以了!

本人也在學習當中,希望大家一起交流,如有什麼錯誤請及時指出!

相關文章