/// <summary> /// 認証処理を実施します。 /// </summary> /// <param name="id">入力されたログインId</param> /// <param name="password">入力されたパスワード</param> /// <returns>認証結果</returns> public AuthResult Auth(string id, string password) { PCSiteTraceSource.MethodStart(); var auth = new Toyota.Gbook.WebSite.Security.Control.Authentication(); try { var apiResult = auth.GetOneIdAuthResult(id, password); return(AuthResult.From(apiResult)); } catch (UnauthorizedException) { PCSiteTraceSource.CheckPoint("認証APIがHTTPステータス401を返却"); return(AuthResult.Unauthorize()); } catch (NoRelationException) { PCSiteTraceSource.CheckPoint("対象のIDに紐づいたT-ConnectIDなし"); return(AuthResult.NoRelation()); } }
/// <summary> /// 認可APIの結果をDataSetに格納にし、認証結果をboolで返却します。 /// </summary> /// <param name="userDataSet">認証結果のデータセット</param> public bool AuthTConnectNavi(ResultCDAuthenticationUserDataSet userDataSet) { var auth = new Toyota.Gbook.WebSite.Security.Control.Authentication(); bool isTConnectNavi; try { isTConnectNavi = auth.SetIsTConnectNaviFlag(userDataSet); // 認証インタフェース処理結果コード SecurityResultCode = userDataSet.ReturnInformation[0].ResultCD; // T-ConnectNavi判定結果 if (!userDataSet.CarInformation[0].IsIsTConnectNaviNull()) { IsTConnectNavi = userDataSet.CarInformation[0].IsTConnectNavi; isTConnectNavi = (bool)IsTConnectNavi; } if (!isTConnectNavi) { // 143:G-BOOK未契約 isTConnectNavi = SecurityResultCode == GBOOK_UN_CONTRACT; } if (isTConnectNavi) { // 認証OK // 接続区分巻き替え for (int i = 0; i < userDataSet.CarInformation.Count; i++) { string conn = userDataSet.CarInformation[i].ConnectDivision; if (conn == SECURITY_DCM_CONNECT_VALUE) { userDataSet.CarInformation[i].ConnectDivision = Common.Constants.ConnectDCM; } else if (conn == SECURITY_MOBILE_PHONE_CONNECT_VALUE) { userDataSet.CarInformation[i].ConnectDivision = Common.Constants.ConnectMobilePhone; } } // セッション値設定 // 1件目のデータを取得する(2件以上のデータが存在することは想定外) var carInfo = userDataSet.CarInformation[0]; var memberInfo = userDataSet.MemberInformation[0]; HttpContext.Current.Session[SessionKey.USERDATASET] = userDataSet.Copy(); HttpContext.Current.Session[SessionKey.SERVICE_DIVISION] = carInfo.ServiceDivision; HttpContext.Current.Session[SessionKey.GBML_VERSION] = carInfo.GBML_VERSION; HttpContext.Current.Session[SessionKey.CONNECT_DIVISION] = carInfo.ConnectDivision; HttpContext.Current.Session[SessionKey.TCONNECT_ID] = memberInfo.TConnectId; HttpContext.Current.Session[SessionKey.PASSWORD] = memberInfo.Password; HttpContext.Current.Session[SessionKey.INTERNAL_MEMBER_ID] = memberInfo.InternalMemberId; HttpContext.Current.Session[SessionKey.MEMBER_DIVISION] = memberInfo.MemberDivision; HttpContext.Current.Session[SessionKey.IS_PRESITE_USER] = userDataSet.MemberInformation[0].PreSiteMemberFlag == "1"; // "1"=true // ESPoサイトへ渡すSession情報を格納 HttpContext.Current.Session[SessionKey.ESPO_MODEL] = Constants.MODEL.MODEL_13; HttpContext.Current.Session[SessionKey.IS_TERMINATED_USER] = SecurityResultCode == GBOOK_UN_CONTRACT; } else { // 認証失敗 _SessionKeyList.ForEach( key => { if (HttpContext.Current.Session[key] != null) { HttpContext.Current.Session.Remove(key); } }); } } catch (ApplicationException) { _SessionKeyList.ForEach( key => { if (HttpContext.Current.Session[key] != null) { HttpContext.Current.Session.Remove(key); } }); // そのままthrow throw; } catch (Exception ex) { PCSiteTraceSource.AppError(ex.Message); _SessionKeyList.ForEach( key => { if (HttpContext.Current.Session[key] != null) { HttpContext.Current.Session.Remove(key); } }); throw new ApplicationException(ex.Message, ex); } PCSiteTraceSource.MethodSuccess(); return(isTConnectNavi); }
/// <summary> /// テレマサービス情報APIの結果をDataSetにして返却します。 /// </summary> /// <param name="id">入力されたログインId</param> /// <param name="internalMemberIds">内部会員IDのリスト</param> /// <returns>会員情報が設定されたDataSet</returns> public ResultCDAuthenticationUserDataSet GetMemberInformationWithVehicle(string internalMemberId) { var auth = new Toyota.Gbook.WebSite.Security.Control.Authentication(); return(auth.CreateResultCDAuthenticationDataSet(internalMemberId)); }
/// <summary> /// テレマサービス情報APIの結果をDataSetにして返却します。 /// </summary> /// <param name="id">入力されたログインId</param> /// <param name="result">認証結果</param> /// <returns>会員情報が設定されたDataSet</returns> public IList <Toyota.Gbook.WebSite.Security.Control.Authentication.Vehicle> GetVehicleList(OneIdTConnectAuthResult result) { var auth = new Toyota.Gbook.WebSite.Security.Control.Authentication(); return(auth.CreateVehicleList(result)); }