2010年10月29日 星期五

MapGuide_為什麼一直被要求輸入帳號及密碼?(如何呼叫MapGuide到自己的頁面)

正當下午想要請假回家玩玩久沒開的SC2,結果竟然收到有人問問題!(我要哭了,竟然有人看我的blog)。

好,信的問題主要有兩個,第一個就是本篇「為什麼在調用MapGuide框架時,會一直出現要輸入帳號密碼的介面?」

這個問題主要原因是,MapGuide框架在被呼叫的時候,並沒有正確的獲得可檢視該Layout的權限,大致上可以分為:
1. 沒有給帳號密碼。
2. 給的帳號密碼錯誤。
3. 登入的帳號沒有權限。

以下以asp.net空頁面來說明:
1. 獲取SessionId

看以上程式碼應該可以看出來,我們以帳號密碼當參數new一個MgUserInformation(MapGuide預設管理者帳號為Administrator、密碼為admin),並且用這個User打開站點,並且以該站點建立一個SessionId;我們都知道MapGuide是以Session來獲取資訊的。所以我們可以想成這一組產生的SessionId就是一個擁有該帳號權力的鑰匙。也就是之後要進行地圖的操作或是瀏覽都要運用這組SessionId。
2. 呼叫框架
MapGuide目前所提供的框架有兩種,一個是Basic Layout(基本佈局),另一個為Flexible Layout(靈活佈局),不管你是使用那一種,在呼叫的時候都必須要給他兩個參數,一個就是你要使用那一個Layout,另一個就是你是誰?

因為你在第一部份已經獲得了一個帶有帳號密碼的SessionId,所以到了真的要呼叫MapGuide框架時,就只需要給SessionId即可。

最後貼上所有程式碼跟結果圖,用同一組密碼(也就是同一組SessionId,開啟一個同時呼叫Basic Layout跟Flexible Layout的頁面。

沒有留言:

張貼留言