当前位置: 代码迷 >> ASP.NET >> OA下集成RTX实现单点登录功能报“用户名不存在错”
  详细解决方案

OA下集成RTX实现单点登录功能报“用户名不存在错”

热度:8149   发布时间:2013-02-25 00:00:00.0
OA上集成RTX实现单点登录功能报“用户名不存在错”?
C# code
 protected void Button2_Click(object sender, EventArgs e)    {        //判断用户名和密码        string userName = TextBox1.Text.Trim();        bool bRet = RtxLogin.IsUserExisted(userName);  //这个函数另见RtxLogin.cs源文件        if (false == bRet)        {            Response.Write("用户不存在");            return;        }        string SessionKey = RtxLogin.GetSessionKey(userName);  //这个函数另见RtxLogin类        string severip = txtServerIP.Text;     //RTX服务器IP地址        short serverport = Convert.ToInt16(txtAppServerPort.Text);//RTX服务器端口,8000;         RtxLogin.SessionKeyLogin(severip, serverport, userName, SessionKey);        //用Response对象实现RX客户端登录并打开一个新的页面(登录代码有可能改进)        Response.Write("<html>" + "\r");    }public class RtxLogin{    //private static RTXSAPILib.RTXSAPIRootObj RootObj;       public static bool IsUserExisted(string username)    {        RTXSAPILib.RTXSAPIRootObj RootObj = new RTXSAPIRootObj();        RTXSAPILib.RTXSAPIUserManager UserManagerObj = RootObj.UserManager;        bool bRet = true;        try        {            bRet = UserManagerObj.IsUserExist(username);        }        catch (COMException ex)        {            bRet = false;        }        return bRet;    }    public static string GetSessionKey(string Account)  //服务器端代码    {        string SessionKey = "";        RTXSAPILib.RTXSAPIRootObj RootObj = new RTXSAPIRootObj();  //创建一个根对象        RTXSAPILib.RTXSAPIUserAuthObj UserAuthObj = RootObj.UserAuthObj; //创建一个用户认证对象        RootObj.ServerIP = ConfigurationManager.AppSettings["rtxServerIP"];  //设置服务器IP,"127.0.0.1"         RootObj.ServerPort = Convert.ToInt16(ConfigurationManager.AppSettings["rtxServerAppPort"]); //设置Appserver端口,8006         try         {            SessionKey = UserAuthObj.GetSessionKey(Account);  //通过用户认证对象获取SessionKey,貌似正确的帐号才能正确获取SessionKey        }        catch (COMException ex)        {            //Response.Write("<script language='javascript'>alert('ex.Message')</script>");                    }        return SessionKey; //返回SessionKey    }    public static void SessionKeyLogin(string strServerIP, short sPort, string strAccount,string strSessionKey)    {        RTXClient.RTXAPIClass ObjApi = new RTXAPIClass();        RTXCAPILib.IRTXCRoot RTXCRoot = (RTXCAPILib.IRTXCRoot)ObjApi.GetObject("KernalRoot");        try        {            RTXCRoot.LoginSessionKey(strServerIP, sPort, strAccount, strSessionKey);        }        catch (COMException ex)        {            //Response.Write("<script language='javascript'>alert('" + ex.Message + "')</script>");             }    }

大家好,我做一个在OA上集成RTX实现单点登录功能?在做的过程中,怎么总是报输入的用户名不存在!但服务器上确实存在这个用户,希望有有高手能够解决!小弟感谢啦!

------解决方案--------------------------------------------------------
C# code
  try        {            bRet = UserManagerObj.IsUserExist(username);        }        catch (COMException ex)        {            bRet = false;        }
  相关解决方案