public InvokeResult <AuthMemberRet> AuthenticateMemberInner(AuthMemberParam param)
        {
            InvokeResult <AuthMemberRet> result = new InvokeResult <AuthMemberRet>()
            {
                Success = true, ret = new AuthMemberRet()
            };

            try
            {
                string  applicationIdFrom = GetHttpHeader("ApplicationId");
                SPParam theSPParam = new { IDNo = param.IDNo, PasswordHash = param.PasswordHash, ApplicationIdFrom = applicationIdFrom, ApplicationIdTo = GlobalManager.SmartLife_CertManage_MobileServices }.ToSPParam();
                BuilderFactory.DefaultBulder().ExecuteSPNoneQuery("SP_Auth_Member", theSPParam);
                if (theSPParam.ErrorCode == 0)
                {
                    string memberId = theSPParam["MemberId"].ToString();
                    result.ret.Token      = TokenProvider.GenTokenDynamic(memberId, GlobalManager.SALT_MOBILE);
                    result.ret.MemberId   = Guid.Parse(memberId);
                    result.ret.MemberName = theSPParam["MemberName"].ToString();
                    string strNodeInfos = TypeConverter.ChangeString(theSPParam["NodeInfos"]);

                    if (strNodeInfos != "")
                    {
                        result.ret.AuthNodeInfos = new List <AuthNodeInfo> {
                        };
                        string[] arrNodeInfos = strNodeInfos.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        foreach (string strNodeInfo in arrNodeInfos)
                        {
                            string[]     arrNodeInfo = strNodeInfo.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                            AuthNodeInfo nodeInfo    = new AuthNodeInfo {
                                FamilyMemberId = Guid.Parse(arrNodeInfo[0]), AccessPoint = arrNodeInfo[1]
                            };
                            result.ret.AuthNodeInfos.Add(nodeInfo);
                        }
                    }
                }
                else
                {
                    result.Success   = false;
                    result.ErrorCode = Convert.ToInt32(theSPParam["ErrorCode"]);
                }
            }
            catch (Exception ex)
            {
                result.Success      = false;
                result.ErrorMessage = ex.Message;
            }

            return(result);
        }
 public InvokeResult <AuthMemberRet> AuthenticateMember(AuthMemberParam param)
 {
     return(AuthenticateMemberInner(param));
 }