Posted on 2015-09-29 10:58
FineReport——報表技術領跑者 閱讀(77)
評論(0) 編輯 收藏
1. 問題描述
權限中使用session,一般是用來存放用戶名和密碼,下面以報表開發工具FineReport為例,分兩種情況介紹用戶名和密碼的保存:
2. 同一應用下session
由于session中能夠保存key,因此在權限中如果報表工程與自己的工程在一個應用下面,即session相同,此時將用戶名與密碼存放于session中,在瀏覽器端將外界輸入的用戶名和密碼保存至session,報表服務器便可以獲得用戶名與密碼,去相應的地址匹配,匹配成功,通過權限關卡,匹配失敗,跳轉登錄頁面。
3. 不同應用下session
不在同一個應用環境下,session不能直接獲取到,要實現單點登錄的效果,在項目登陸界面把用戶名和密碼傳給報表服務器通過fs_load&cmd=sso方法進行驗證,驗證成功則把用戶名和密碼及角色以session方式保存在報表服務器端,此時的應用session和報表session,不是同一個session,相對獨立,互不影響。
跨域項目和跨語言項目都屬于不同應用下的工程,此時session是不能共用,不是同一個session,所以在注銷用戶的同時觸發一下報表方法:/WebReport/ReportServer?op=fs_load&cmd=ssout,則可使用戶session同步的效果。權限中session的定義及注銷可參考Finereport幫助文檔:跨域單點登錄。