Intershop ICM //无效会话

时间:2017-08-02 07:44:11

标签: intershop

我想完全使会话无效:

  • 删除应用程序服务器上的会话
  • 重置Web适配器上的会话ID

问题:最好的方法是什么?

我目前的想法是删除sid cookie并使用 package com.lisec.emdktest.intentsample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.widget.TextView; import com.symbol.emdk.EMDKManager; import com.symbol.emdk.EMDKResults; import com.symbol.emdk.ProfileManager; public class MainActivity extends AppCompatActivity implements EMDKManager.EMDKListener { //Assign the profile name used in EMDKConfig.xml private String profileName = "NewDataCapture"; //Declare a variable to store ProfileManager object private ProfileManager mProfileManager = null; //Declare a variable to store EMDKManager object private EMDKManager emdkManager = null; private TextView textViewBarcode = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //The EMDKManager object will be created and returned in the callback. EMDKResults results = EMDKManager.getEMDKManager(getApplicationContext(), this); //Check the return status of getEMDKManager if(results.statusCode == EMDKResults.STATUS_CODE.FAILURE) { //Failed to create EMDKManager object } textViewBarcode = (TextView) findViewById(R.id.textViewBarcode); Intent i = getIntent(); handleDecodeData(i); } //This function is responsible for getting the data from the intent private void handleDecodeData(Intent i) { //Check the intent action is for us if (i.getAction().contentEquals ("com.lisec.emdktest.intentsample.RECVR") ) { String source = i.getStringExtra ("com.motorolasolutions.emdk.datawedge.source"); //Check if the data has come from the Barcode scanner if(source.equalsIgnoreCase("scanner")) { //Get the data from the intent String data = i.getStringExtra ("com.motorolasolutions.emdk.datawedge.data_string"); //Check that we have received data if(data != null && data.length() > 0) { textViewBarcode.setText("Data = " + data); } } } } @Override public void onNewIntent(Intent i) { handleDecodeData(i); } @Override public void onOpened(EMDKManager emdkManager) { this.emdkManager = emdkManager; //Get the ProfileManager object to process the profiles mProfileManager = (ProfileManager) emdkManager.getInstance (EMDKManager.FEATURE_TYPE.PROFILE); if(mProfileManager != null) { try{ String[] modifyData = new String[1]; //Call processPrfoile with profile name and SET flag to create the profile. The modifyData can be null. EMDKResults results = mProfileManager. processProfile(profileName, ProfileManager.PROFILE_FLAG.SET, modifyData); if(results.statusCode == EMDKResults.STATUS_CODE.FAILURE) { //Failed to set profile } }catch (Exception ex){ // Handle any exception } } } @Override public void onClosed() { } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); //Clean up the objects created by EMDK manager emdkManager.release(); } 和{{1}}方法来删除旧的会话数据。

更新

当然你不想删除sid,因为服务器上可能还有其他会话需要像后台会话那样保持活动状态。因此,重置webadapter会话不是一个好主意。

1 个答案:

答案 0 :(得分:0)

是的,SessionMgrImpl:removeSession应该可以工作。它也用于方法checkSessionTimeout。

    Enumeration<Session> en = sessionTable.getExpiredSessions(count);

    while (en.hasMoreElements())
    {
        Session session = en.nextElement();
        removeSession(session);
    }