【BO-SDK】 BO InfoView embed apps (內嵌應用介面) 從InfoView登陸介面獲取logonToken獲得連線session: [EnterpriseSession][I

xiangjinling發表於2010-08-23

request ——> InfoViewConstants.INFOVIEW_SESSION——>CrystalIdentity——>LogonTokenMgr

[@more@]

具體程式碼:











關鍵語句:

String token = ((CrystalIdentity)request.getSession().getAttribute(InfoViewConstants.INFOVIEW_SESSION)).getSession().getLogonTokenMgr().getDefaultToken();
//SessionMgr sessionMgr = new SessionMgr();
ISessionMgr sessionMgr = CrystalEnterprise.getSessionMgr();
IEnterpriseSession enterpriseSession = sessionMgr.logonWithToken(token);

IInfoStore iStore=(IInfoStore)enterpriseSession.getService("InfoStore");

其他處理:

String name=((CrystalIdentity)request.getSession().getAttribute(InfoViewConstants.INFOVIEW_SESSION)).getSession().getUserInfo().getUserName();
String auth=((CrystalIdentity)request.getSession().getAttribute(InfoViewConstants.INFOVIEW_SESSION)).getSession().getUserInfo().getAuthenMethod();
long pass=((CrystalIdentity)request.getSession().getAttribute(InfoViewConstants.INFOVIEW_SESSION)).getSession().getUserInfo().getPasswordExpiry();
out.println("UserName:"+name);
out.println("auth:"+auth);
out.println("pass:"+pass);

後續處理:

IInfoObjects result;
try {
result = iStore.query( "Select * From "

+ "CI_INFOOBJECTS Where SI_ID='37048'" );//26710

IInfoObject report = (IInfoObject) result.get(0);
IReport reporto=(IReport)report;
out.println("
");
out.println("


");
out.println("Report Name is:"+reporto.getTitle());

}
catch (SDKException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24167472/viewspace-1037255/,如需轉載,請註明出處,否則將追究法律責任。

相關文章