Ejemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //string strIdHospital = SSOHelper.Configuration["idHospital"] as string;

                //if (strIdHospital != "0")
                //    lnkStyleSheet.Href = "styleHospital.css";
                //else
                //    lnkStyleSheet.Href = "style.css";

                SSOHelper.Authenticate();

                if (SSOHelper.CurrentIdentity == null)
                {
                    SSOHelper.RedirectToSSOPage("Login.aspx", Request.Url.ToString());
                }
                else
                {
                    lblUsr.Text     = string.Format(" {0}", SSOHelper.CurrentIdentity.Surname + " " + SSOHelper.CurrentIdentity.FirstName);
                    lblEfector.Text = string.Format("{0}", SSOHelper.GetNombreEfectorRol(SSOHelper.CurrentIdentity.IdEfectorRol));

                    if (string.IsNullOrEmpty(url))
                    {
                        url = SSOHelper.Configuration["StartPage"] as string;
                    }

                    ////Armo el menú de la Aplicación seleccionada para el efector seleccionado
                    List <SSOMenuItem> menu = SSOHelper.GetApplicationMenuByEfector();
                    lvMenuSSO.DataSource = menu[0].items;
                    lvMenuSSO.DataBind();
                }
            }
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                lblUsr.Text     = string.Format("{0}, {1}", SSOHelper.CurrentIdentity.Surname, SSOHelper.CurrentIdentity.FirstName);
                lblEfector.Text = string.Format("{0}", SSOHelper.GetNombreEfectorRol(SSOHelper.CurrentIdentity.IdEfectorRol));


                string strsips = SSOHelper.Configuration["Publicacion_Sips"] as string;
                string strsso  = SSOHelper.Configuration["Publicacion_SSO"] as string;


                ImgHomeSystem.PostBackUrl = "../" + strsips + "/default.aspx";
                ImgChangePass.PostBackUrl = "/" + strsso + "/Options.aspx";

                string url = HttpContext.Current.Request.QueryString["url"];
                if (string.IsNullOrEmpty(url))
                {
                    url = SSOHelper.Configuration["StartPage"] as string;
                }

                //ImgExit.PostBackUrl = String.Format("/"+strsso+"/Logout.aspx");
                ImgExit.PostBackUrl = "/" + strsso + "/Logout.aspx?relogin=1&url=" + url;

                ////Armo el menú de la Aplicación seleccionada para el efector seleccionado
                //List<SSOMenuItem> menu = SSOHelper.GetApplicationMenuByEfector();
                //lvMenuSSO.DataSource = menu[0].items;
                //lvMenuSSO.DataBind();
            }
        }
Ejemplo n.º 3
0
 protected override bool OnApply()
 {
     if (base.Dirty && !this._encryptionKey_PropertiesControl.CanApplyChanges())
     {
         return(false);
     }
     if (this._encryptionKey_PropertiesControl.CanApplyChanges() && this._scopeNodeAction == "Import")
     {
         string encryptionKey;
         this._encryptionKey_PropertiesControl.GetKeyValue(out encryptionKey);
         bool flag = SSOHelper.ImportSSOApplication(encryptionKey, this.ApplicationFileName, this.EncryptedText);
         if (this.EncryptionKeyEnteredForImport != null)
         {
             EventArgs <bool, string> e = new EventArgs <bool, string>(flag, this._scopeNodeAction);
             this.EncryptionKeyEnteredForImport(this, e);
         }
         return(flag);
     }
     if (this._encryptionKey_PropertiesControl.CanApplyChanges() && this._scopeNodeAction == "Export")
     {
         string encryptionKey2;
         this._encryptionKey_PropertiesControl.GetKeyValue(out encryptionKey2);
         this.EncryptionKey = encryptionKey2;
     }
     return(true);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// token解密获取用户身份
        /// </summary>
        /// <returns></returns>
        private TokenUserInfo GetCurrentUserFromToken()
        {
            if (currentHttpContext == null)
            {
                return(null);
            }
            var author = currentHttpContext.Request.Headers["Authorization"];

            //var sysCode = _httpContext.Request.Query["SysCode"];
            if (string.IsNullOrWhiteSpace(author) || !author.FirstOrDefault().Contains("Bearer")) //|| sysCode.ToString().IsNullOrWhiteSpace())
            {
                return(null);
            }
            var           token = author.ToString().Substring("Bearer".Length).Trim();
            List <string> list;

            //token校验不通过或者token过期
            if (!SSOHelper.IsTokenValid(token, out list) ||
                Convert.ToDateTime(list[4]).AddMinutes(ConfigService.TokenOverTime) < DateTime.Now)
            {
                return(null);
            }
            //解析token获取用户信息
            var tokenUserInfo = new TokenUserInfo {
                UserID = Convert.ToInt32(list[0]), AccountName = list[1], UserName = list[2], IP = list[3], Token = token
            };

            return(tokenUserInfo);
        }
Ejemplo n.º 5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sSOHelper"></param>
 /// <param name="queue"></param>
 /// <param name="logger"></param>
 /// <param name="search"></param>
 /// <param name="userServices">用户服务</param>
 public HomeController(SSOHelper sSOHelper, IBackgroundTaskQueue queue, ILogger <HomeController> logger, ISearchApp search, IUserServices userServices)
 {
     _ssoHelper    = sSOHelper;
     _queue        = queue;
     _logger       = logger;
     _search       = search;
     _userServices = userServices;
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 生成token,并存于redis,同时新增一条sessionlog记录
        /// </summary>
        /// <param name="user"></param>
        /// <param name="sys"></param>
        /// <param name="ip"></param>
        /// <returns>是否成功</returns>
        private async Task <bool> SetTokenAsync(UserInfoAndRoleRight user, AppSystem sys, string ip)
        {
            var utcNow = DateTime.UtcNow;
            var token  = SSOHelper.GenerateToken(user.UserInfo.UserID.ToString(), user.UserInfo.AccountName, user.UserInfo.UserName, ip);

            int timespan = ConfigService.TokenOverTime;//分钟

            #region  缓存token
            var tokenKey = ConfigService.GetTokenRedisKey(user.UserInfo.UserID.ToString(), user.UserInfo.AccountName, sys.SystemCode);
            //检查当前用户在当前system下是否已有token。已有则更新log,并在redis中覆盖原有token
            var existTokenValue = redisCache.Get(tokenKey).ToString();

            var userInfoKey = ConfigService.GetUserInfoRedisKey(token, sys.SystemCode);
            //缓存、db记录。
            redisCache.Set(tokenKey, token, TimeSpan.FromMinutes(timespan));
            redisCache.Set(userInfoKey, user, TimeSpan.FromMinutes(timespan));
            //检查是否缓存成功
            var cacheResult = redisCache.Get(tokenKey).ToString() == token && redisCache.Get(userInfoKey).ToString() == user.ToJson();

            if (!existTokenValue.IsNullOrWhiteSpace())
            {
                var existUserInfoKey = ConfigService.GetUserInfoRedisKey(existTokenValue, sys.SystemCode);
                redisCache.Remove(existUserInfoKey);

                //查询session日志记录
                var sessionLog = await masterContext.UserSessionLogs.FirstOrDefaultAsync(a => a.UserToken == existTokenValue && a.UserID == user.UserInfo.UserID);

                if (sessionLog != null)
                {
                    sessionLog.RealExpirationTime = utcNow;
                }
            }
            #endregion 缓存token

            //DB记录token记录
            await masterContext.UserSessionLogs.AddAsync(new UserSessionLog
            {
                AccessHost         = ip,
                CreateTime         = utcNow,
                ModifyTime         = utcNow,
                SystemID           = sys.ID,
                SystemName         = sys.SystemName,
                UserID             = user.UserInfo.UserID,
                UserToken          = token,
                ValidTime          = timespan * 60,
                RealExpirationTime = utcNow.AddMinutes(timespan)
            });

            var dbSaveResult = await masterContext.SaveChangesAsync();

            if (cacheResult && dbSaveResult > 0)
            {
                user.Token = token;
                return(true);
            }
            return(false);
        }
Ejemplo n.º 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SSOHelper.Authenticate();

            if (SSOHelper.CurrentIdentity == null)
            {
                SSOHelper.RedirectToSSOPage("Login.aspx", Request.Url.ToString());
            }
        }
Ejemplo n.º 8
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            var author = context.HttpContext.Request.Headers["Authorization"];
            var param  = context.HttpContext.Request.GetRequestParam().JsonToObj <RequestBase>();

            //author为空或不以bearer开头
            if (string.IsNullOrWhiteSpace(author) || !author.FirstOrDefault().Contains("Bearer"))
            {
                context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
                context.Result = new JsonResult(new { msg = "未知身份" });
                return;
            }
            //提取token
            var           token = author.ToString().Substring("Bearer".Length).Trim();
            List <string> list;

            //token无法解密,不再查询redis。
            if (!SSOHelper.IsTokenValid(token, out list))
            {
                context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
                context.Result = new JsonResult(new { msg = "非法token" });
                return;
            }
            //生成token 的时间加上token生效的时间
            if (Convert.ToDateTime(list[4]).AddMinutes(Convert.ToDouble(BaseCore.Configuration.GetSection("AppSetting:TokenOverTime").Value)) < DateTime.Now)
            {
                context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
                context.Result = new JsonResult(new { msg = "token已过期" });
                return;
            }
            //解析token获取用户信息
            var tokenUserInfo = new TokenUserInfo {
                UserID = Convert.ToInt32(list[0]), AccountName = list[1], UserName = list[2], IP = list[3], Token = token
            };

            ((BaseController)context.Controller).CurrentUser = tokenUserInfo;

            ////token生成时的ip与当前请求ip不一致
            //if (tokenUserInfo.IP != context.HttpContext.Connection.RemoteIpAddress.ToString())
            //{
            //    context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
            //    context.Result = new JsonResult(new { msg = "非法请求" });
            //    return;
            //}

            //context.Controller
            var redisCache  = (RedisCache)context.HttpContext.RequestServices.GetService(typeof(RedisCache));
            var userInfoKey = ConfigService.GetUserInfoRedisKey(token, param.SysCode);

            //token+sysCode组成的key是否存在
            if (!redisCache.Exists(userInfoKey))
            {
                context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
                context.Result = new JsonResult(new { msg = "无权限" });
                return;
            }
        }
Ejemplo n.º 9
0
        static void TokenTest( )
        {
            var token = SSOHelper.GenerateToken("1", "boo", "boo", "127.0.0.1");

            Console.WriteLine($"token = {token} \r\n");
            List <string> list   = null;
            var           result = SSOHelper.IsTokenValid(token, out list);

            Console.WriteLine($"Token Valid Result = {result} ,list = {list.ToJson()}");
        }
Ejemplo n.º 10
0
        public void ParseSSOTokenPage()
        {
            Cookie cookie = SSOHelper.ParseSSOLandingPage(getDataFromFile("SSOTokenPage.html"));

            Assert.IsNotNull(cookie);
            Assert.AreEqual(cookie.Name, "ZSESSIONID");
            Assert.AreEqual(cookie.Value, "khkjhkhkhkhkjhh");
            Assert.AreEqual(cookie.Domain, "us1.rallydev.com");
            Assert.AreEqual(cookie.Path, "/");
        }
Ejemplo n.º 11
0
 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
 {
     if (Request.Cookies["Cookies"] != null)
     {
         HttpCookie mycookies = new HttpCookie("Cookies");
         mycookies["u_id"] = null;
         mycookies.Expires = DateTime.Now.AddDays(-1d);
         Response.Cookies.Add(mycookies);
         SSOHelper.GlobalSessionEnd();
     }
 }
Ejemplo n.º 12
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult IsHasRemind()
        {
            int count = 0;

            #region 过期仪器提醒
            StringBuilder sqlWhere = new StringBuilder();
            sqlWhere.Append("1=1");
            if (!LoginHelper.LoginUserAuthorize.ContainsKey("Instrument-CheckAll".ToLower()))
            {
                sqlWhere.AppendFormat(" and {0}", Global.Business.ServiceProvider.UserManageDepartService.GetSQL2MyMangeDepart("BelongDepart"));
            }
            sqlWhere.AppendFormat(" and '{0:yyyy-MM-dd}'>DueEndDate and ManageLevel !='C' and RecordState={1}", DateTime.Now, UtilConstants.InstrumentState.过期禁用.GetHashCode());

            IList <Instrument.Common.Models.InstrumentModel> overTimeList = ServiceProvider.InstrumentService.GetAllInstrumentListByWhere(sqlWhere.ToString());
            //当前用户下已加入清单但未送检的仪器
            IList <InstrumentWaitSendModel> preSendList             = ServiceProvider.InstrumentWaitSendService.GetByUserId(LoginHelper.LoginUser.UserId);
            InstrumentWaitSendModel         instrumentWaitSendModel = null;

            foreach (Instrument.Common.Models.InstrumentModel item in overTimeList)
            {
                instrumentWaitSendModel = preSendList.SingleOrDefault(i => i.InstrumentId.Equals(item.InstrumentId));
                if (instrumentWaitSendModel != null)
                {
                    continue;
                }
                count++;
                break;
            }
            #endregion

            #region 软件过期提醒
            if (count == 0)
            {
                string PublishKey = WebUtils.GetSettingsValue("PublishDate");
                if (string.IsNullOrEmpty(PublishKey) == true)
                {
                    PublishKey = Global.Common.GlobalConstants.PublishDate;
                }
                else
                {
                    PublishKey = SSOHelper.Decrypt(PublishKey);
                }
                DateTime publishDate = DateTime.ParseExact(PublishKey, "yyyy-MM-dd", null);
                count = new TimeSpan(DateTime.Now.Ticks - (publishDate.AddYears(1).Ticks)).Days;
            }
            #endregion

            JsonResult jr = Json(new
            {
                hasremind = count > 0?true:false
            }, JsonRequestBehavior.AllowGet);
            return(jr);
        }
Ejemplo n.º 13
0
 private void deleteSSOToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(txtSSOConfigLoc.Text))
     {
         SSOHelper.DeteleSSOconfig(txtConfigAppName.Text);
         MessageBox.Show("Successfully deleted SSOconfig");
     }
     else
     {
         MessageBox.Show("Select valid SSO Config file");
     }
 }
Ejemplo n.º 14
0
        static void PasswordTest()
        {
            Console.WriteLine("输入username:");
            var userName = Console.ReadLine();

            Console.WriteLine("输入密码:");
            var pwd = Console.ReadLine();

            var password = SSOHelper.EncryptPassword(pwd, userName);

            Console.WriteLine("密码加密结果:" + password);
            Console.WriteLine("密文解密结果:" + SSOHelper.DecryptPassword(password, userName));
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 获取accessToken
        /// </summary>
        /// <returns></returns>
        public string GetaccessToken(string CompanyInfo)
        {
            IList <Global.Common.Models.ParamModel> paramList = ServiceProvider.ParamService.GetAll();
            ParamModel company = paramList.SingleOrDefault(t => t.ParamCode == CompanyInfo);

            if (null == company)
            {
                company = new Global.Common.Models.ParamModel();
            }
            ParamItemModel pCompany = company.itemsList.SingleOrDefault(s => s.ParamItemName.Equals("公司编号"));
            ParamItemModel Pwd      = company.itemsList.SingleOrDefault(s => s.ParamItemName.Equals("密码"));

            return(SSOHelper.Encrypt(string.Format("{0}|{1}", pCompany == null ? "" : pCompany.ParamItemValue, Pwd == null ? "" : Pwd.ParamItemValue)));
        }
Ejemplo n.º 16
0
        private void CargarArbol()
        {
            TreeNode nodo = new TreeNode();

            TreeView1.Nodes.Clear();
            nodo.Value = "0";
            nodo.Text  = string.Format("{0}", SSOHelper.GetNombreEfectorRol(SSOHelper.CurrentIdentity.IdEfectorRol));//oUser.IdEfector.Nombre;
            TreeView1.Nodes.Add(nodo);
            mostrarNodos(nodo);

            pnlPiso.Visible       = false;
            pnlHabitacion.Visible = false;
            pnlCama.Visible       = false;
        }
        public void ParseSamlForm()
        {
            var ssoHelper = new SSOHelper();
            SSOHelper.FormInfo formInfo = ssoHelper.getFirstFormInfo(getDataFromFile("HtmlWithOneSamlForm.txt"));

            Assert.IsTrue(formInfo.isSamlForm());
            Assert.IsFalse(formInfo.isPasswordForm());
            Assert.AreEqual(formInfo.actionUrl, "https://some.host.com/actionUrl/endpoint1.html");

            List<SSOHelper.PostParam> postParams = formInfo.getSamlPostParams();
            Assert.IsTrue(postParams.Count == 2, String.Format("Params found not equal to 2.  Actually found {0}.",postParams.Count));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "SAMLRequest" && x.value == "SamlRequestValue1"));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "RelayState" && x.value == "RelayStateValue1"));
        }
Ejemplo n.º 18
0
    protected void btn_Login_Click(object sender, ImageClickEventArgs e)
    {
        if (txt_UserName.Text.Trim() != "user")
        {
            if (SSOHelper.CheckOnline(txt_UserName.Text.Trim()))
            {
                string   strSql = "select DepartID,UserID,t_R_UserInfo.RoleID,PWDModifyTime,Name,LevelID,ReadRight,WriteRight,RefreshRight,FileRight,id,ManageRight,dataflag from t_R_UserInfo inner join t_R_Role on t_R_Role.RoleID=t_R_UserInfo.RoleID where  t_R_UserInfo.flag=0 and UserID='" + txt_UserName.Text.Trim() + "' and PWD='" + txt_Pwd.Text.Trim() + "'";
                MyDataOp mdo    = new MyDataOp(strSql);
                DataSet  ds     = mdo.CreateDataSet();

                if (ds.Tables[0].Rows.Count == 0)
                {
                    Response.Write("<script language='javascript'>alert('帐户或密码输入错误!请重新输入!');</script>");
                }
                else
                {
                    HttpCookie Cookie = new HttpCookie("Cookies");

                    DateTime dt = DateTime.Now;
                    TimeSpan ts = new TimeSpan(0, 10, 0, 0); //有效期10小时;
                    Cookie.Expires = dt.Add(ts);
                    Cookie.Values.Add("uid", ds.Tables[0].Rows[0]["id"].ToString());
                    Cookie.Values.Add("u_id", ds.Tables[0].Rows[0]["UserID"].ToString());
                    Cookie.Values.Add("u_role", ds.Tables[0].Rows[0]["RoleID"].ToString());
                    Cookie.Values.Add("u_flag", ds.Tables[0].Rows[0]["dataflag"].ToString());
                    Cookie.Values.Add("u_pswdtime", ds.Tables[0].Rows[0]["PWDModifyTime"].ToString());
                    Cookie.Values.Add("Name", HttpUtility.UrlEncode(ds.Tables[0].Rows[0]["Name"].ToString()));
                    //Cookie.Values.Add("u_Name",ds.Tables[0].Rows[0]["Name"].ToString());//用户名
                    // Cookie.Values.Add("RealName", HttpUtility.UrlEncode(ds.Tables[0].Rows[0]["RealName"].ToString()));

                    Cookie.Values.Add("u_level", ds.Tables[0].Rows[0]["LevelID"].ToString());
                    Cookie.Values.Add("u_purview", ds.Tables[0].Rows[0]["ReadRight"].ToString() + //读权限
                                      ds.Tables[0].Rows[0]["WriteRight"].ToString() +             //写权限
                                      ds.Tables[0].Rows[0]["ManageRight"].ToString() +
                                      ds.Tables[0].Rows[0]["FileRight"].ToString());              //刷新权限;
                    Cookie.Values.Add("departid", ds.Tables[0].Rows[0]["DepartID"].ToString());
                    Response.AppendCookie(Cookie);
                    SSOHelper sso = new SSOHelper();
                    sso.LoginRegister(txt_UserName.Text.Trim());

                    Response.Redirect("~/main.htm");
                }
            }
            else
            {
                Response.Write("<script language='javascript'>alert('您的帐户已在别处登陆!');</script>");
            }
        }
    }
Ejemplo n.º 19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                return;
            }
            SSOHelper.Authenticate();

            if (SSOHelper.CurrentIdentity == null)
            {
                SSOHelper.RedirectToSSOPage("Login.aspx", Request.Url.ToString());
            }
            cargarCombos();
            cargarListaFichas();
        }
Ejemplo n.º 20
0
        public void ParseSamlForm()
        {
            var ssoHelper = new SSOHelper();

            SSOHelper.FormInfo formInfo = ssoHelper.getFirstFormInfo(getDataFromFile("HtmlWithOneSamlForm.txt"));

            Assert.IsTrue(formInfo.isSamlForm());
            Assert.IsFalse(formInfo.isPasswordForm());
            Assert.AreEqual(formInfo.actionUrl, "https://some.host.com/actionUrl/endpoint1.html");

            List <SSOHelper.PostParam> postParams = formInfo.getSamlPostParams();

            Assert.IsTrue(postParams.Count == 2, String.Format("Params found not equal to 2.  Actually found {0}.", postParams.Count));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "SAMLRequest" && x.value == "SamlRequestValue1"));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "RelayState" && x.value == "RelayStateValue1"));
        }
Ejemplo n.º 21
0
        public ActionResult SSOValidate()
        {
            //单点登录
            string errMsg = "";

            if (SSOHelper.ValidateToken())
            {
                //已登录,获取用户权限
                string accout = SSOHelper.GetUserAccount();
                if (!string.IsNullOrEmpty(accout))
                {
                    UserModel user = ServiceProvider.UserService.GetByLoginName(accout.Split('|')[0]);
                    if (user != null)
                    {
                        //初始化用户身份验证票据和权限资源
                        LoginHelper.InitPermission(user);
                        string url = Request.Url.Query;
                        url = url.Substring(5, url.Length - 5);
                        int index = url.IndexOf('&');
                        if (index > -1)
                        {
                            url = url.Remove(index, 1);
                            url = url.Insert(index, "?");
                        }
                        //Response.Redirect(url);
                        ViewBag.Url = url;
                    }
                    else
                    {
                        errMsg = "不存在登录帐号";
                    }
                    //Response.Write("不存在登录帐号");
                }
                else
                {
                    errMsg = "登录帐号为空";
                }
            }
            else
            {
                ViewBag.Url = "/Login/LoggedinDefault";
            }
            //errMsg = "令牌错误";
            ViewBag.ErrMsg = errMsg;
            return(View());
        }
        public void ParsePasswordForm()
        {
            var ssoHelper = new SSOHelper();
            SSOHelper.FormInfo formInfo = ssoHelper.getFirstFormInfo(getDataFromFile("HtmlWithOnePasswordForm.txt"));

            Assert.IsTrue(formInfo.isPasswordForm());
            Assert.IsFalse(formInfo.isSamlForm());
            Assert.AreEqual(formInfo.actionUrl, "/idp/resumeSAML20/idp/SSO.ping");

            Uri baseUri = new Uri("https://some.host.com/path");
            Assert.AreEqual(formInfo.getAbsoluteUri(baseUri), "https://some.host.com/idp/resumeSAML20/idp/SSO.ping");

            List<SSOHelper.PostParam> postParams = formInfo.getPasswordPostParams("SomeUsername","SomePassword");
            Assert.IsTrue(postParams.Count == 2, String.Format("Params found not equal to 2.  Actually found {0}.", postParams.Count));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "pf.username" && x.value == "SomeUsername"));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "pf.pass" && x.value == "SomePassword"));
        }
Ejemplo n.º 23
0
        public override bool Execute(out string message)
        {
            bool result = false;

            Validate();
            string exceptionMessage;

            if (String.IsNullOrEmpty(this.SsoConfigLocation) || String.IsNullOrEmpty(this.SsoConfigApplicationName))
            {
                message = String.IsNullOrEmpty(this.SsoConfigLocation) ? "SSO config file is not selected." : "SSO config application name is empty.";
            }
            else
            {
                result  = SSOHelper.ImportSSOconfig(this.SsoKey, this.SsoConfigLocation, this.SsoConfigApplicationName, String.Format("BizTalkAdmin@{0}.com", this.SSOCompanyName), true, out exceptionMessage);
                message = result ? "SSO config successfully imported." : exceptionMessage;
            }
            return(result);
        }
Ejemplo n.º 24
0
        //跳转的页面调用
        public ActionResult SSO()
        {
            //先创建令牌,再创建cookie
            SSOHelper.CreateCookie(LoginHelper.LoginUser.JobNo, "ksdflkjsd", 5);
            string url = Request.Url.Query;

            url = url.Substring(5, url.Length - 5);
            int index = url.IndexOf('&');

            if (index > -1)
            {
                url = url.Remove(index, 1);
                url = url.Insert(index, "?");
            }
            Response.Redirect(url);
            return(null);
            //return View();
        }
        public async Task <ActionResult> PostToken(SSOTokenDTO tokendata)
        {
            Console.WriteLine(tokendata);
            try
            {
                UserDTO user = await SSOHelper.GetSSOData(tokendata);

                User databaseUserReturn = await _context.Users.FindAsync(user.Username.ToLower());

                if (databaseUserReturn == null)
                {
                    _context.Users.Add(await UserFactory.Create(user.Username, user.Mail, user.Gn, user.Sn));
                    await _context.SaveChangesAsync();

                    user.AccountType = nameof(Models.User.UserType.User);
                }
                else
                {
                    if (databaseUserReturn.Mail == null)
                    {
                        databaseUserReturn.Mail = user.Mail;
                    }
                    if (databaseUserReturn.GeneralName == null)
                    {
                        databaseUserReturn.GeneralName = user.Gn;
                    }
                    if (databaseUserReturn.Surname == null)
                    {
                        databaseUserReturn.Surname = user.Sn;
                    }
                    _context.Users.Update(databaseUserReturn);
                    await _context.SaveChangesAsync();

                    user.AccountType = databaseUserReturn.AccountType.ToString();
                }

                var response = new { jwt = JwtHelper.Create(user, _configuration.GetValue <String>("APIHostName")) };
                return(Ok(response));
            }
            catch (ArgumentException)
            {
                return(Unauthorized("Authentication Failed"));
            }
        }
Ejemplo n.º 26
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                string strIdHospital = SSOHelper.Configuration["idHospital"] as string;

                if (strIdHospital != "0")
                {
                    lnkStyleSheet.Href = "styleHospital.css";
                }
                else
                {
                    lnkStyleSheet.Href = "style.css";
                }

                string strsips = SSOHelper.Configuration["Publicacion_Sips"] as string;
                string strsso  = SSOHelper.Configuration["Publicacion_SSO"] as string;



                lblUsr.Text     = string.Format(" {0}", SSOHelper.CurrentIdentity.Surname + " " + SSOHelper.CurrentIdentity.FirstName);
                lblEfector.Text = string.Format("{0}", SSOHelper.GetNombreEfectorRol(SSOHelper.CurrentIdentity.IdEfectorRol));
                //ImgHomeSip.PostBackUrl = "/Sips/Default.aspx";
                ImgHomeSystem.PostBackUrl = "~/default.aspx";

                ImgChangePass.PostBackUrl = "/" + strsso + "/Options.aspx";
                //ImgChangePass.PostBackUrl = "/SSO/Options.aspx";
                string url = HttpContext.Current.Request.QueryString["url"];
                if (string.IsNullOrEmpty(url))
                {
                    url = SSOHelper.Configuration["StartPage"] as string;
                }

                //ImgExit.PostBackUrl = "/SSO/Logout.aspx?relogin=1&url=" + url + "/sips";
                ImgExit.PostBackUrl = "/" + strsso + "/Logout.aspx?relogin=1&url=" + url;

                ////Armo el menú de la Aplicación seleccionada para el efector seleccionado
                List <SSOMenuItem> menu = SSOHelper.GetApplicationMenuByEfector();
                lvMenuSSO.DataSource = menu[0].items;
                lvMenuSSO.DataBind();
            }
        }
Ejemplo n.º 27
0
        public void ParsePasswordForm()
        {
            var ssoHelper = new SSOHelper();

            SSOHelper.FormInfo formInfo = ssoHelper.getFirstFormInfo(getDataFromFile("HtmlWithOnePasswordForm.txt"));

            Assert.IsTrue(formInfo.isPasswordForm());
            Assert.IsFalse(formInfo.isSamlForm());
            Assert.AreEqual(formInfo.actionUrl, "/idp/resumeSAML20/idp/SSO.ping");

            Uri baseUri = new Uri("https://some.host.com/path");

            Assert.AreEqual(formInfo.getAbsoluteUri(baseUri), "https://some.host.com/idp/resumeSAML20/idp/SSO.ping");

            List <SSOHelper.PostParam> postParams = formInfo.getPasswordPostParams("SomeUsername", "SomePassword");

            Assert.IsTrue(postParams.Count == 2, String.Format("Params found not equal to 2.  Actually found {0}.", postParams.Count));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "pf.username" && x.value == "SomeUsername"));
            Assert.IsNotNull(postParams.SingleOrDefault(x => x.name == "pf.pass" && x.value == "SomePassword"));
        }
Ejemplo n.º 28
0
 private void redeploySSOToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(txtSSOConfigLoc.Text))
     {
         string exceptionMessage;
         bool   result = SSOHelper.ImportSSOconfig(SSOKey, txtSSOConfigLoc.Text, txtConfigAppName.Text, String.Format("BizTalkAdmin@{0}.com", SSOCompanyName), true, out exceptionMessage);;
         if (result)
         {
             MessageBox.Show("Successfully redeployed SSOconfig and refreshed cache.");
         }
         else
         {
             MessageBox.Show("Error is importing SSOconfig. Manual intervension required");
         }
     }
     else
     {
         MessageBox.Show("Select valid SSO Config file");
     }
 }
Ejemplo n.º 29
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SSOHelper.Authenticate();

            if (SSOHelper.CurrentIdentity == null)
            {
                SSOHelper.RedirectToSSOPage("Login.aspx", Request.Url.ToString());
            }
            SysEfector efector = null;

            efector = new SysEfector(SSOHelper.CurrentIdentity.IdEfector);

            //lblUsr.Text = string.Format("{0}, {1}", SSOHelper.CurrentIdentity.Surname, SSOHelper.CurrentIdentity.FirstName);
            lblUsr.Text     = string.Format(" {0}", SSOHelper.CurrentIdentity.Surname + " " + SSOHelper.CurrentIdentity.FirstName);
            lblEfector.Text = string.Format("{0}", efector.Nombre);
            //lblEfector.Text = string.Format("{0}", SSOHelper.GetNombreEfectorRol(SSOHelper.CurrentIdentity.IdEfectorRol));
            Session["SessionEfector"] = lblEfector.Text;


            ImgHomeSip.PostBackUrl    = "/Sips/Default.aspx";
            ImgHomeSystem.PostBackUrl = "Default.aspx";
            ImgChangePass.PostBackUrl = "/SSO/Options.aspx";

            string url = HttpContext.Current.Request.QueryString["url"];

            if (string.IsNullOrEmpty(url))
            {
                url = SSOHelper.Configuration["StartPage"] as string;
            }

            ImgExit.PostBackUrl = "/SSO/Logout.aspx?relogin=1&url=" + url + "/sips";

            ////Armo el menú de la Aplicación seleccionada para el efector seleccionado

            /*  List<SSOMenuItem> menu = SSOHelper.GetApplicationMenuByEfector();
             * lvMenuSSO.DataSource = menu[0].items;
             * lvMenuSSO.DataBind();
             */
        }
        public async Task <ActionResult> CloudCherry()
        {
            try
            {
                string ssoKey    = ConfigurationManager.AppSettings["ssokey"];
                string ccAccount = ConfigurationManager.AppSettings["ccaccount"];

                var identity = (ClaimsIdentity)User.Identity;
                if (identity != null)
                {
                    string userId  = string.IsNullOrEmpty(identity.Name) ? null : Regex.Replace(identity.Name.Split('@').FirstOrDefault(), @"[^0-9a-zA-Z]+", string.Empty);;
                    string emailId = identity.Name;

                    var subUser = new SSOSubUser
                    {
                        Userid    = userId,            // SSO user to login
                        Role      = "ManagerReadOnly", //Manager Or ManagerReadOnly
                        Email     = emailId,
                        TimeStamp = DateTime.UtcNow,
                        SSOKey    = ssoKey,
                        ManagedBy = ccAccount
                    };


                    var redirectUrl = await SSOHelper.GetSSOTokenURL(subUser);

                    SSOHelper.WriteLog($"Redirecting {ccAccount} - {userId} to CloudCherry");
                    return(Redirect(redirectUrl));
                }

                SSOHelper.WriteLog("Identity Not Found");
                return(Redirect($"{SSOHelper.webBaseURL}#/login?errormsg=Unable to sign-in, contact administrator"));
            }
            catch (Exception ex)
            {
                SSOHelper.WriteErrorLog(ex);
                return(Redirect($"{SSOHelper.webBaseURL}#/login?errormsg=Unable to sign-in, contact administrator"));
            }
        }
Ejemplo n.º 31
0
        private void LoadSSOAppsTreeView()
        {
            SSOAffiliateApplications ssoAffiliateApps = new SSOAffiliateApplications();
            TreeNode parentNode = treeViewSSOApps.Nodes.Add(Constants._SSO_AFFILIATE_ROOT_NODE, Constants._SSO_AFFILIATE_ROOT_NODE);

            parentNode.ImageIndex         = 0;
            parentNode.SelectedImageIndex = 0;
            for (int i = 0; i < ssoAffiliateApps.Applications.Count(); i++)
            {
                TreeNode affiliateAppNode = parentNode.Nodes.Add(ssoAffiliateApps.Applications[i]);
                affiliateAppNode.ImageIndex         = 1;
                affiliateAppNode.SelectedImageIndex = 1;
                SSOAffiliateApplication ssoApp = new SSOAffiliateApplication();
                ssoApp.Application  = ssoAffiliateApps.Applications[i];
                ssoApp.Description  = ssoAffiliateApps.Descriptions[i];
                ssoApp.ContactInfo  = ssoAffiliateApps.ContactInfos[i];
                ssoApp.UserAccount  = ssoAffiliateApps.UserAccounts[i];
                ssoApp.AdminAccount = ssoAffiliateApps.AdminAccounts[i];
                ssoApp.Flag         = ssoAffiliateApps.Flags[i];

                string[] userAccounts = ssoAffiliateApps.UserAccounts[i].Split(';');
                Array.Sort(userAccounts);
                for (int j = 0; j < userAccounts.Count(); j++)
                {
                    object[] test = SSOHelper.GetWindowsUserMapping(userAccounts[j].Trim(), ssoAffiliateApps.Applications[i]);
                    foreach (var obj in test)
                    {
                        dynamic  item     = obj;
                        TreeNode userNode = affiliateAppNode.Nodes.Add(userAccounts[j].Trim());
                        userNode.ImageIndex         = 3;
                        userNode.SelectedImageIndex = 3;
                        userNode.Tag = item;
                        userNode.ContextMenuStrip = contextMenuStrip1;
                    }
                }
                affiliateAppNode.Tag = ssoApp;
            }
        }
 public async Task <string> CheckFrameWorkVersion()
 {
     return(SSOHelper.GetFrameWorkVersion());
 }