コード例 #1
0
        public async Task <EcpState> InspurIdSSO(string auth)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Authorization", auth);
            InspurIdAuthResult ar = await HttpHelper.SendJsonData <InspurIdAuthResult>(HttpMethod.Get, getProfileUrl, null, headers);

            EcpUserService userSvr = new EcpUserService();
            SysUser        user    = userSvr.GetUserByInspurID(ar.ID);

            // SysUser user = new SysUser() { ID = ar.ID, Code = ar.Code, Mail = ar.Mail, Name = ar.first_name + ar.last_name,Phone = ar.Phone};
            if (user == null)
            {
                // 没有域账户的人员
                user = new SysUser()
                {
                    ID = ar.ID, Code = ar.Code, Mail = ar.Mail, Name = ar.first_name + ar.last_name, Phone = ar.Phone
                };
            }
            EcpState state = new EcpState()
            {
                User = user, TenantID = ar.Enterprise.ID, TenantName = ar.Enterprise.Name
            };

            return(state);
        }
コード例 #2
0
        public async Task <IActionResult> SSO(string returnUrl)
        {
            if (EcpState.IsLogin() == false)
            {
                string   auth  = HttpContext.Request.Headers["Authorization"];
                EcpState state = await _identityServer.InspurIdSSO(auth);

                EcpState.SetCurrent(state);
            }
            return(new RedirectResult(returnUrl));
        }
コード例 #3
0
        public async Task <EcpState> InspurIdSSO(string auth)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Authorization", auth);
            InspurIdAuthResult ar = await HttpHelper.SendJsonData <InspurIdAuthResult>(HttpMethod.Get, getProfileUrl, null, headers);

            EcpUserService userSvr = new EcpUserService();
            SysUser        user    = userSvr.GetUserByInspurID(ar.ID);
            EcpState       state   = new EcpState()
            {
                User = user, TenantID = ar.Enterprise.ID, TenantName = ar.Enterprise.Name
            };

            return(state);
        }
コード例 #4
0
        public async Task <EcpState> SimpleAuthen(string account, string password)
        {
            Dictionary <string, string> postDataDic = new Dictionary <string, string>();

            postDataDic.Add("grant_type", "password");
            postDataDic.Add("username", account);
            postDataDic.Add("password", password);
            postDataDic.Add("client_id", "com.inspur.ecm.client.android");
            postDataDic.Add("client_secret", "6b3c48dc-2e56-440c-84fb-f35be37480e8");


            HttpResponseMessage resMsg = await HttpHelper.PostFormData(loginUrl, postDataDic);

            string str = await resMsg.Content.ReadAsStringAsync();

            if (resMsg.IsSuccessStatusCode)
            {
                Dictionary <string, string> responseDic = JsonConvert.DeserializeObject <Dictionary <string, string> >(str);

                string access_token = responseDic["access_token"];
                string token_type   = responseDic["token_type"];
                Dictionary <string, string> headers = new Dictionary <string, string>();
                headers.Add("Authorization", string.Format("{0} {1}", token_type, access_token));

                InspurIdAuthResult ar = await HttpHelper.SendJsonData <InspurIdAuthResult>(HttpMethod.Get, getProfileUrl, null, headers);

                EcpUserService userSvr = new EcpUserService();
                SysUser        user    = userSvr.GetUserByInspurID(ar.ID);
                EcpState       state   = new EcpState()
                {
                    User = user, TenantID = ar.Enterprise.ID, TenantName = ar.Enterprise.Name
                };
                HttpContextProvider.Current.Session.Clear();
                EcpState.SetCurrent(state);
                return(state);
            }
            else
            {
                throw new RtfException(str);
            }
        }
コード例 #5
0
        public async Task <IActionResult> Index([FromForm] string uname, [FromForm] string psd)
        {
            EcpState state = await _identityServer.SimpleAuthen(uname, psd);

            return(new JsonResult(state));
        }