1. 問(wèn)題描述
權(quán)限中使用session,一般是用來(lái)存放用戶名和密碼,下面以報(bào)表開(kāi)發(fā)工具FineReport為例,分兩種情況介紹用戶名和密碼的保存:
2. 同一應(yīng)用下session
由于session中能夠保存key,因此在權(quán)限中如果報(bào)表工程與自己的工程在一個(gè)應(yīng)用下面,即session相同,此時(shí)將用戶名與密碼存放于session中,在瀏覽器端將外界輸入的用戶名和密碼保存至session,報(bào)表服務(wù)器便可以獲得用戶名與密碼,去相應(yīng)的地址匹配,匹配成功,通過(guò)權(quán)限關(guān)卡,匹配失敗,跳轉(zhuǎn)登錄頁(yè)面。
3. 不同應(yīng)用下session
不在同一個(gè)應(yīng)用環(huán)境下,session不能直接獲取到,要實(shí)現(xiàn)單點(diǎn)登錄的效果,在項(xiàng)目登陸界面把用戶名和密碼傳給報(bào)表服務(wù)器通過(guò)fs_load&cmd=sso方法進(jìn)行驗(yàn)證,驗(yàn)證成功則把用戶名和密碼及角色以session方式保存在報(bào)表服務(wù)器端,此時(shí)的應(yīng)用session和報(bào)表session,不是同一個(gè)session,相對(duì)獨(dú)立,互不影響。
跨域項(xiàng)目和跨語(yǔ)言項(xiàng)目都屬于不同應(yīng)用下的工程,此時(shí)session是不能共用,不是同一個(gè)session,所以在注銷用戶的同時(shí)觸發(fā)一下報(bào)表方法:/WebReport/ReportServer?op=fs_load&cmd=ssout,則可使用戶session同步的效果。權(quán)限中session的定義及注銷可參考Finereport幫助文檔:跨域單點(diǎn)登錄。