[Silverlight][Facebook] 在Silverlight中取得Cookie方法

2010/10/28

一樣一句老話最近在跟Facebook 纏鬥..
為了在Silverlight中拿到 access_token 只好用這招..(攤手
取得Cookie的值...
首先介紹版面配置...

sshot-107

基本上這案例很簡單 就是按下 btnGetCookies 的按鈕
就會分別撈出 Cookies 的名稱 放到 lbCookieName 這ListBox中..
則Cookie的值 會放到lbCookieValue 這ListBox中…


首先記得要先

using System.Windows.Browser;


我們來看 btnGetCookies 的Click 事件

C# Code :
private void btnGetCookies_Click(object sender, RoutedEventArgs e)
{
//用分號隔開 變成 String []
String[] cookies = HtmlPage.Document.Cookies.Split(';');
foreach (String cookie in cookies)
{
String[] keyValues = cookie.Split('=');
 
//這邊為了避免值裡面有= 符號,而且Facebook特愛用這符號..
//所以這作法是我按照第一個= 的出現 其餘我都視為是值
this.lbCookieName.Items.Add(keyValues[0]);
this.lbCookieValue.Items.Add(cookie.Replace(keyValues[0]+ "=", ""));
 
}
}


這樣執行結果為:


sshot-108

這兩組是對應的…
Cookie 名稱為 fbs_15835007519884 , Cookie 內容就是: “access_token=….”

先這樣解決手上的需求..
其他的等遇到再跟大家分享..^^


下面範例你會看到值 是因為我在Javascript 中寫入兩筆資料到Cookie 中,所以可以撈得到..
我插入的Javascript Code 如下:

<script type="text/javascript">
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "";
expires = "" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + escape(value) + "; expires=" + expires;
 
}
 
 
createCookie("CookieName1", "DataValue1", 1);
createCookie("CookieName2", "DataValue2", 1);
</script>



讚一下:



預覽:


檔案下載:



0 意見:

程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.