看c#看不懂了,看forms驗證的第4篇也是迷迷糊糊的,懂了它的意思,但是我實現起來就打不到效果,還報了錯誤。驗證視圖狀態 MAC 失敗。如果此應用程序由網絡場或群集承載,請確保 <machineKey> 配置指定了相同的 validationKey 和驗證算法。不能在群集中使用 AutoGenerate。估計是我在machine.config中配置的秘鑰與頁面的算法不同,我把Machine裡的刪除了還是報錯,參照網上的說法把web.config裡的<page>加入<pages enableEventValidation= "false " viewStateEncryptionMode = "Never " / > 同樣沒有解決。不搞這個了,先放下。 他是這樣實現單登陸跨域名的 不管是從哪裡登陸的,都同一把用戶名與密碼交給通一個頁面A進行處理,在A頁面處理過程中,它會依次把幾個網站的cookie都發放給用戶,cookie都是使用的第一次加密後的字符串,(這個在傳的過程中好慢,我機子上都用了好久還打不開),這樣不同域名的網站也就同時在客戶端存入了cookIE,這個時候用戶如果從一個網站到另外一個網站也不需要登陸了。作者起的名字叫 天女散花,確實不錯。第2種辦法叫做後羿射日 就是增加一個跳板B,上面放置超級連結,在A頁面處理完cookie驗證(只處理一個網站的)後,直接跳轉到B頁面上,讓用戶選擇登陸哪個站點,如果選擇了另外一個網站,在進行cookIE的發放。等於讓用戶選擇登陸哪個站點了。
感覺作者的技巧好高,在幾個頁面間進行跳轉的代碼也寫的不錯!
string from = Request["FromUrl"]; //起始 URL 路徑
string next = Request["NextUrl"]; //還需要跳轉的 URL
string key = Request["CookieTicket"]; //已加密的 CookIE 文本