Shop的Synchronous
cs
好了
我們在Service中完成了登錄
並把用戶狀態傳遞回Shop站點
我們接著看用戶狀態是怎麼同步的
首先
如果Session裡的Security是空字符串
則表示Shop站點沒有向Service發送過請求
而Service向Shop發回了請求
這顯然是錯誤的
這次訪問是由客戶端偽造進行的訪問
於是訪問被拒絕了
同樣Security和InSecurity不相同
則表示請求和應答是不匹配的
可能應答被纂改過了
所以應答同樣被拒絕了
當檢驗Security通過後
我們保證Serive完成了應答
並且返回了確切的參數
下面就是讀出參數同步Shop站點和Service站點的用戶即時狀態
string InUserID = thisRequestQueryString[UserID];
string InPass = thisRequestQueryString[Pass];
string InSecurity = thisRequestQueryString[Security];
string Security = thisSession[Security]ToString();
if (Security != )
{
byte[] Value;
UnicodeEncoding Code = new UnicodeEncoding();
byte[] Message = CodeGetBytes(Security);
SHAManaged Arithmetic = new SHAManaged();
Value = ArithmeticComputeHash(Message);
Security = ;
foreach(byte o in Value)
{
Security += (int) o + O;
}
if (Security == InSecurity)
{
if (InPass == True)
{
thisSession[UserID] = intParse(InUserID);
thisSession[Pass] = true;
thisResponseRedirect(thisSession[Url]ToString());
}
}
else
{
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite(數據錯誤);
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
}
}
else
{
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
thisResponseWrite(訪問錯誤);
thisResponseWrite();
thisResponseWrite();
thisResponseWrite();
}
Shop的Pagecs
我們知道頁面在一段時間不刷新後Session會超時失效在我們一直訪問Shop的時候怎麼才能保證Service的Session不會失效呢?很簡單我們返回來看Shop的Pagecs通過在所有Shop的頁面內都用<iframe>嵌套Service的某個頁面就能保證Service能和Shop的頁面同時刷新需要注意的一點是Service的Session必須保證不小於所有Shop和Office的Session超時時間這個在Webconfig裡可以進行配置
thisResponseWrite(<iframe width=\\ height=\\ src=\ + projectservice + /Customeraspx\></iframe>);
總結
一次完整的登錄完成了我們接著假設一下現在要跳到Office的Any頁面系統會進行怎樣的操作呢?Any(用戶沒有登錄)>Validate(用戶已經登錄)>Synchronous(同步)>Any也就是說這次用戶沒有進行登錄的過程我們通過一次登錄使得Service的用戶狀態為登錄並且不管有多少個網站應用只要這些網站都保證符合Shop的特性這些網站就都能保持Service的用戶狀態同時能通過Service獲得用戶的狀態也就是說我們實現了SSO
[] [] [] [] []
From:http://tw.wingwit.com/Article/program/net/201311/14964.html