public JsonResult GetSSOManager(string code)
 {
     return(ExecuteFunctionRun(() =>
     {
         ActionResult result = new ActionResult();
         SSOSystem ssm = this.Engine.SSOManager.GetSSOSystem(code);
         if (ssm == null)
         {
             result.Success = false;
             result.Message = "msgGlobalString.NullObjectException";
             return Json(result, JsonRequestBehavior.AllowGet);
         }
         SSOManagerViewModel model = new SSOManagerViewModel()
         {
             ObjectID = ssm.ObjectID,
             SystemName = ssm.SystemName,
             SystemCode = ssm.SystemCode,
             SubmitUserNameControlID = ssm.SubmitUserNameControlID,
             SubmitUrl = ssm.DefaultUrl,
             DefaultUrl = ssm.DefaultUrl,
             SubmitPasswordID = ssm.SubmitPasswordID,
             State = ssm.State,
             Secret = ssm.Secret,
             Description = ssm.Description,
             AllowGetToken = ssm.AllowGetToken
         };
         result.Success = true;
         result.Extend = model;
         return Json(result, JsonRequestBehavior.AllowGet);
     }));
 }
예제 #2
0
        public string SSOSystemUrl(string SystemCode, string Secret, string UserCode, string TargetSystemCode, string TargetUrl)
        {
            bool result = this.Engine.SSOManager.ValidateSSOSystem(SystemCode, Secret);

            if (!result)
            {
                this.Engine.LogWriter.Write(string.Format("SSOSystem.false,SystemCode={0},Secret={1}", SystemCode, Secret));
                return(string.Empty);
            }
            string token = this.Engine.SSOManager.GetToken(SystemCode, Secret, TargetSystemCode, UserCode);
            string url   = TargetUrl;

            if (string.IsNullOrEmpty(url))
            {
                SSOSystem targetSystem = this.Engine.SSOManager.GetSSOSystem(TargetSystemCode);
                if (targetSystem == null)
                {
                    return(string.Empty);
                }
                url = targetSystem.DefaultUrl;
            }
            if (url.IndexOf("?") > -1)
            {
                url += "&Token=" + token;
            }
            else
            {
                url += "?Token=" + token;
            }
            return(url);
        }
 public JsonResult SaveSSOManager(SSOManagerViewModel model)
 {
     return(ExecuteFunctionRun(() =>
     {
         ActionResult result = new ActionResult();
         SSOSystem ssm = this.Engine.SSOManager.GetSSOSystem(model.SystemCode);
         if (string.IsNullOrEmpty(model.ObjectID))
         {
             //单点登录信息
             if (ssm != null && !string.IsNullOrEmpty(ssm.ObjectID))
             {
                 result.Success = false;
                 result.Message = "msgGlobalString.CodeDuplicate";
                 return Json(result, JsonRequestBehavior.AllowGet);
             }
             ssm = new SSOSystem()
             {
                 AllowGetToken = model.AllowGetToken,
                 DefaultUrl = model.DefaultUrl,
                 Description = model.Description,
                 Secret = model.Secret,
                 State = model.State,
                 SubmitPasswordID = model.SubmitPasswordID,
                 SubmitUrl = model.SubmitUrl,
                 SubmitUserNameControlID = model.SubmitUserNameControlID,
                 SystemCode = model.SystemCode,
                 SystemName = model.SystemName
             };
             if (!this.Engine.SSOManager.AddSSOSystem(ssm))
             {
                 result.Message = "msgGlobalString.SaveFailed";
                 result.Success = false;
             }
             else
             {
                 result.Success = true;
             }
         }
         else
         {
             if (ssm == null)
             {
                 result.Message = "msgGlobalString.SaveFailed";
                 result.Success = false;
             }
             else
             {
                 ssm.AllowGetToken = model.AllowGetToken;
                 ssm.DefaultUrl = model.DefaultUrl;
                 ssm.Description = model.Description;
                 //ssm.Secret = model.Secret;
                 ssm.State = model.State;
                 ssm.SubmitPasswordID = model.SubmitPasswordID;
                 ssm.SubmitUrl = model.SubmitUrl;
                 ssm.SubmitUserNameControlID = model.SubmitUserNameControlID;
                 ssm.SystemCode = model.SystemCode;
                 ssm.SystemName = model.SystemName;
                 if (!this.Engine.SSOManager.UpdateSSOSystem(ssm))
                 {
                     result.Message = "msgGlobalString.SaveFailed";
                     result.Success = false;
                 }
                 else
                 {
                     result.Success = true;
                 }
             }
         }
         return Json(result, JsonRequestBehavior.AllowGet);
     }));
 }