2007年4月27日 星期五

IE 有時會出現 "無法開啟網際網路 操作已終止"

我的 IE 有問題為什麼某些特定的網站一直無法瀏覽,明明瀏覽的網頁沒有問題,為什麼別人的沒有問題,偏偏我的IE有問題,不是出現

就是

按下確定後,當然是出現下面的畫面

是中毒、木馬、間諜程式嗎,還是系統出問題了,換了好幾個掃毒軟體,已經掃了N遍還是無法解決問題,是不是只剩重新安裝系統而已?

在發生這個問題時,可以先檢查一下是不是所安裝的 Google Toolbar、MSN Search ToolBar 等第三方瀏覽器延伸軟體在作怪。

可以先將這類的軟體暫時停用,再使用瀏覽器重新瀏覽看看,如果是的話就將它移除或停用即可解決問題。

停用方法如下

IE->工具->網際網路選項->進階->啟用第三方瀏覽器延伸(需要重新啟動) 取消,記得重新啟動瀏覽器才會生效

2007年4月24日 星期二

Windows 平台執行遠端 X 應用軟體(Secure X Windows with SSH)

以往想在 Windows 平台上執行 遠端 X 應用程式,必須在 Windows 上安裝 CygwinX-Win32Xmanager 等 X 伺服軟體,不是要錢就是設定繁複,而且常是忙了老半天,最後還是一無所獲,若是遠端的 X 主機因防火牆的關係只開放 SSH 連線,那設定起來更是麻煩的不得了,現在只要使用 Xming X Server for Windows 加上 PuTTY 即可輕輕鬆鬆連上遠端主機執行 X 應用程式。

案例環境說明:

1.使用 Windows XP 平台執行遠端 X 應用程式。

2.欲執行的 X 應用程式所在主機只能透過 SSH 登入主機執行程式。

方法步驟:

1.下載安裝 Xming 及 Xming-portable-PuTTY,下載點 Xming 官方網站 http://sourceforge.net/projects/xming/

2.執行 Xming,執行後會在工作列出現 Xming 圖示。

3.使用 PuTTy 登入工作站,連線前先勾選 X11 forwarding。

4.登入遠端主機後直接執行 X 應用程式執可。

其他關於 Xming 的操作設定方法見 http://sourceforge.net/projects/xming/

PHP程式使用 Windows Server AD 認證身份

Windows Server AD 說穿了就是一個 LADP 伺服器,可讓您將資訊儲存在目錄服務中,在資料庫中進行查詢,並可以使用他來作為身份的認證授權。

使用PHP撰寫程式難免會遇到需要作身份認證的問題,除了自行撰寫這部份程式的選擇外,PHP 的函式庫中亦提供了標準的 LDAP 函式,如果公司組織中已經有架設 Windows 2K/2003 網域的環境 ,將身份認證的工作交由 Windows AD 亦是一個不錯的選擇。

案例環境說明:
1.公司組織內有一個Windows 網域,名稱為: domain.com。
2.domain.com 的網域有兩部網域主控站(DC)分別為:dc.domain.com、dc2.domain.com。
3.PHP版本:5.1.4

PHP程式碼範例:
以下的程式範例為精簡版,帳號和密碼不可為空的
<?php

$domain = 'domain.com'; //設定網域名稱
$user = 'user'; //設定欲認證的帳號名稱
$password = 'password'; //設定欲認證的帳號密碼
$dn = "dc=domain,dc=com";

// 使用 ldap bind 
$ldaprdn = $user . '@' . $domain; // ldap rdn or dn 
$ldappass = $password; // 設定密碼

// 連接至網域控制站
$ldapconn = ldap_connect($domain) or die("無法連接至 $domain");

// 如果要特別指定某一部網域主控站(DC)來作認證則上面改寫為
// $ldapconn = ldap_connect('dc.domain.com) or die("無法連接至 dc.domain.com"); 
// 或 
// $ldapconn = ldap_connect('dc2.domain.com)or die("無法連接至 dc2.domain.com"); 

//以下兩行務必加上,否則 Windows AD 無法在不指定 OU 下,作搜尋的動作
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

if ($ldapconn) { // binding to ldap server 
    $ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappass); 
    // verify binding 
    if ($ldapbind) { 
        $filter = "(sAMAccountName=$user)";
        $result = @ldap_search($ldapconn, $dn, $filter);

        if($result==false) echo "認證失敗";
        else {
            echo "認證成功..."; 
            //取出帳號的所有資訊
             $entries = ldap_get_entries($ldapconn, $result); 
        }
    } else { 
        echo "認證失敗..."; 
    } 
} 
?>