public ActionResult <loginResult> GetTModels(loginModels login)
        {
            var result = new loginResult();

            result.token = jwt.GenerateToken(login.username);
            return(result);
        }
Ejemplo n.º 2
0
 private void LogonMessage(loginResult ret)
 {
     lblMessage.Text = getLogonMsg(ret);
     if (ret == loginResult.logPwdInvalid || ret == loginResult.logPwdEmpty || ret == loginResult.logJustLocked)
     {
         MyPage.SetFocus(this, TXT_PASSWORD);
     }
     else
     {
         MyPage.SetFocus(this, TXT_USERNAME);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 首先登录管理账户,然后使用管理账户再去操作其它动作。
        /// </summary>
        /// <param name="errMsg"></param>
        /// <returns></returns>
        private bool adminLogin(out string errMsg)
        {
            errMsg = string.Empty;
            bool flag = false;
            //loginResult result = service.login(ADMINUID, ADMINPWD, SCHEME, null, null); //login(userId, password, out errMsg);
            loginResult result = Soap.Instance.login(ADMINUID, ADMINPWD, SCHEME, out errMsg);

            if (result.result > 0)            //(result.result > 0)
            {
                sessionId = result.sessionId; //储存会话ID
                flag      = true;
            }
            else
            {
                errMsg = "管理员登录失败:" + result.message;
            }
            return(flag);
        }
Ejemplo n.º 4
0
        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                CommentCount = 1;

                rp("Logging in into Crucible...");

                Stream auth = getHttpStream(
                    String.Format(Properties.Settings.Default.CrucibleLoginUrl, Properties.Settings.Default.CrucibleUserName,
                                  Properties.Settings.Default.CruciblePassword));
                XmlSerializer asr = new XmlSerializer(typeof(loginResult));
                loginResult   lr  = (loginResult)asr.Deserialize(auth);

                rp("Login complete...");

                rp("Fetching reviews...");
                Stream rvs = getHttpStream(String.Format(Properties.Settings.Default.CrucibleReviewsUrl,
                                                         Properties.Settings.Default.CrucibleProject, lr.token));

                XmlSerializer rsr     = new XmlSerializer(typeof(reviews));
                reviews       reviews = (reviews)rsr.Deserialize(rvs);

                rp("Opening Excel...");

                Excel.Application oXL      = new Excel.Application();
                Excel.Workbook    workBook = oXL.Workbooks.Add(System.Reflection.Missing.Value);

                rp("Preparing the workbook...");

                PrepareExcelWorkbook(workBook);
                Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets[1];

                rp("Logging in into Jira...");
                JiraSoapServiceService jss = new JiraSoapServiceService();

                string token = jss.login(Properties.Settings.Default.CrucibleUserName,
                                         Properties.Settings.Default.CruciblePassword);

                rp("Loading Jira versions");
                foreach (RemoteVersion ver in jss.getVersions(token, Properties.Settings.Default.JiraProjectName))
                {
                    revHash[ver.id] = ver.name;
                    log(String.Format("Adding [{0}] : [{1}] to hash", ver.name, ver.id));
                }

                rp("Populating data into workbook...");
                int rowIndex = 2;

                foreach (reviewData rv in reviews.reviewData)
                {
                    if (
                        (Properties.Settings.Default.CrucibleFetchAllReviews == false) &&
                        (rv.state != state.Closed)
                        )
                    {
                        log("Incomplete review, skipping " + rv.permaId.id);
                        continue;
                    }
                    else
                    {
                        rp("Processing " + rv.permaId.id);

                        Stream cms = getHttpStream(String.Format(Properties.Settings.Default.CrucibleCommentUrl, rv.permaId.id, lr.token));

                        XmlSerializer cmr       = new XmlSerializer(typeof(comments));
                        comments      rcomments = (comments)cmr.Deserialize(cms);
                        if (rcomments.Any != null)
                        {
                            foreach (System.Xml.XmlElement elem in rcomments.Any)
                            {
                                XmlSerializer            vlcdr = new XmlSerializer(typeof(versionedLineCommentData));
                                versionedLineCommentData vlcd  = (versionedLineCommentData)vlcdr.Deserialize(new StringReader(
                                                                                                                 decorate(elem.InnerXml, "versionedLineCommentData")));
                                WriteExcelRow(workSheet, rowIndex, rv, vlcd, jss, token);
                                rowIndex++;
                            }
                        }
                        else
                        {
                            rp("Skipping " + rv.permaId.id + ". No review comments detected.");
                        }
                    }
                }
                oXL.Visible     = true;
                oXL.UserControl = true;
            }
            catch (Exception exp)
            {
                rp("Sorry, exception occured, after all this is software and there is no CI for this :)\r\n" +
                   exp.Message + "\r\n" + exp.StackTrace);
            }
            rp("Completed...");
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 登录方法
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public loginResult login(string userId, string password, string scheme, out string errMsg)
        {
            errMsg = string.Empty;
            loginResult result = null;
            //根据URL创建请求对象
            HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(serviceURL);

            webRequest.Method      = "POST";
            webRequest.ContentType = "text/xml;charset=\"utf-8\"";
            StringBuilder soap = new StringBuilder();

            ////登录报文格式
            ///*
            // * <q0:login>
            // *  <userid>$userid</userid>
            // *  <password>$password</password>
            // *  <scheme>$scheme</scheme>
            // *  <algorithm>$algorithm</algorithm>
            // *  <securityCode></securityCode>
            // * </q0:login>
            // * *
            soap.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            soap.Append("<soapenv:Envelope xmlns:q0=\"http://ws.livebos.apex.com/\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
            soap.Append("<soapenv:Header>");
            soap.Append("</soapenv:Header>");
            soap.Append("<soapenv:Body>");
            soap.Append("<q0:login>");
            soap.Append("<userid>{0}</userid>");
            soap.Append("<password>{1}</password>");
            soap.Append("<scheme>{2}</scheme>");
            soap.Append("<algorithm></algorithm>");
            soap.Append("<securityCode></securityCode>");
            soap.Append("</q0:login>");
            soap.Append("</soapenv:Body>  ");
            soap.Append("</soapenv:Envelope>");

            //转换成字节数组
            byte[] bytes = Encoding.UTF8.GetBytes(string.Format(soap.ToString(), userId, password, scheme));
            webRequest.ContentLength = bytes.Length;
            Stream stream = webRequest.GetRequestStream();

            stream.Write(bytes, 0, bytes.Length);
            stream.Flush();
            stream.Close();

            try
            {
                HttpWebResponse webResponse = webRequest.GetResponse() as HttpWebResponse;
                if (webResponse.StatusCode == HttpStatusCode.OK)
                {
                    //获取返回结果流
                    Stream       tempStraem = webResponse.GetResponseStream();
                    StreamReader sr         = new StreamReader(tempStraem, Encoding.UTF8);
                    //获取结果
                    string res = sr.ReadToEnd();
                    sr.Close();         //关闭读取器
                    tempStraem.Close(); //关闭流

                    //把结果先转换为xml文件 查询<LoginResult>节点,然后把它该节点再转换为类对象
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(res);
                    XmlNode node = xmlDoc.SelectSingleNode("//LoginResult");
                    res = node.OuterXml.Replace("LoginResult", "loginResult");

                    //把xml转换成lbeResult对象
                    result = Deserialize(res, typeof(loginResult)) as loginResult;
                }
            }
            catch (WebException ex)
            {
                errMsg = ex.Message;
            }

            return(result);
        }
Ejemplo n.º 6
0
        protected void BTN_SUBMIT_Click(object sender, EventArgs e)
        {
            string nexturl = "";

            if (TXT_USERNAME.Text == String.Empty)
            {
                LogonMessage(loginResult.logUserEmpty);
            }
            else
            if (TXT_PASSWORD.Text == String.Empty)
            {
                LogonMessage(loginResult.logPwdEmpty);
            }
            else
            {
                try
                {
                    #region login AD
                    connectionString = getConnString();
                    DbConnection conn = new DbConnection(connectionString);

                    DirectoryEntry root = new DirectoryEntry("LDAP://" + ConfigurationSettings.AppSettings["LDAPServer"], TXT_USERNAME.Text,
                                                             TXT_PASSWORD.Text, AuthenticationTypes.Secure);
                    DirectorySearcher searcher = new DirectorySearcher(root);
                    string            username = TXT_USERNAME.Text;
                    if (username.IndexOf("\\") > 0)
                    {
                        username = username.Substring(username.IndexOf("\\") + 1);
                    }
                    searcher.Filter = "(SAMAccountName=" + username + ")";
                    SearchResult SResult = searcher.FindOne();

                    if (SResult != null)
                    {
                        string userid, displayname, nik, email;
                        userid = SResult.Properties["SAMAccountName"][0].ToString();
                        try { displayname = SResult.Properties["displayName"][0].ToString(); } catch { displayname = userid; }
                        try { nik = SResult.Properties["employeeID"][0].ToString(); } catch { nik = ""; }
                        try { email = SResult.Properties["mail"][0].ToString(); } catch { email = ""; }
                        object[] par = new object[] { userid, displayname, email, nik };
                        conn.ExecNonQuery("exec SYNC_AD_USER @1,@2,@3,@4", par, dbtimeout);
                        conn.ExecReader("select * from [scalluser] where [userid] = '" + userid + "' and su_active = 1", null, dbtimeout);
                        if (conn.hasRow())
                        {
                            Guid   rand_sessionid = Guid.NewGuid();
                            string sess           = rand_sessionid.ToString();

                            object[] lgparam = new object[] { userid, Request.UserHostAddress, sess };
                            conn.ExecuteNonQuery(SP_LOGINSTARTED, lgparam, dbtimeout);
                            FormsAuthentication.SetAuthCookie(userid, false);
                            nexturl = AuthenticateUser(conn, userid, sess, callback.Value);
                        }
                        else
                        {
                            LogonMessage(loginResult.logPwdInvalid);
                        }
                    }

                    #endregion
                }
                catch (Exception ex)
                {
                    #region login local

                    try
                    {
                        connectionString = getConnString();
                        DbConnection conn = new DbConnection(connectionString);



                        string sessionid;
                        Guid   rand_sessionid = Guid.NewGuid();
                        sessionid = rand_sessionid.ToString();


                        loginResult flag = ValidateLogin(TXT_USERNAME.Text, TXT_PASSWORD.Text, conn, dbtimeout, logon, Request.UserHostAddress, out sessionid);

                        switch (flag)
                        {
                        //IF COMMENTED :: MORE THAN ONE ACCESS RESTRICTED
                        //case loginResult.logHasLogon:
                        case loginResult.logSuccess:


                            object[] lgparam = new object[] { TXT_USERNAME.Text, Request.UserHostAddress, sessionid };

                            conn.ExecuteNonQuery(SP_LOGINSTARTED, lgparam, dbtimeout);

                            FormsAuthentication.SetAuthCookie(TXT_USERNAME.Text, false);

                            nexturl = AuthenticateUser(conn, TXT_USERNAME.Text, sessionid, callback.Value);

                            break;

                        case loginResult.logPwdDefault:
                            FormsAuthentication.SetAuthCookie(TXT_USERNAME.Text, false);
                            Session.Add("UserID", TXT_USERNAME.Text);
                            nexturl = "ChangePassword.aspx?initial";
                            break;

                        case loginResult.logPwdExpired:
                            //FormsAuthentication.SetAuthCookie(TXT_USERNAME.Text, false);
                            //Session.Add("sha1", hash_password);
                            //Session.Add("UserID", TXT_USERNAME.Text);
                            //nexturl = "ChangePassword.aspx?expired";

                            //change password dari AD sehingga exp user local unused
                            object[] lgparam2 = new object[] { TXT_USERNAME.Text, Request.UserHostAddress, sessionid };
                            conn.ExecuteNonQuery(SP_LOGINSTARTED, lgparam2, dbtimeout);
                            FormsAuthentication.SetAuthCookie(TXT_USERNAME.Text, false);

                            nexturl = AuthenticateUser(conn, TXT_USERNAME.Text, sessionid, callback.Value);

                            break;

                        default: LogonMessage(flag); break;
                        }
                    }
                    catch (Exception exc)
                    {
                        string errmsg = exc.Message;
                        if (errmsg.IndexOf("Last Query: exec SU_USERLOGINGIN") > 0)
                        {
                            errmsg          = errmsg.Substring(0, errmsg.IndexOf("Last Query:"));
                            lblMessage.Text = errmsg;
                        }
                        else
                        {
                            Response.Write("<!-- ex msg: " + exc.Message.Replace("-->", "--)") + " -->\n");
                            LogonMessage(loginResult.logUnknown);
                        }
                    }

                    #endregion
                }

                if (nexturl != "")
                {
                    Response.Redirect(nexturl);
                }
            }
        }
Ejemplo n.º 7
0
        private string getLogonMsg(loginResult ret)
        {
            string msg = string.Empty;

            switch (ret)
            {
            //logNotFound, logSuccess, logHasLogon, logLocked
            //logPwdExpired, logPwdEmpty, logPwdInvalid, logJustLocked
            //logUserExpired, logGrantInvalid, logAuthFail
            //logNoLOSAccess, logNoMenuAccess, logSessionLost
            case loginResult.logUserEmpty:
                msg = "Please input userid!"; break;

            case loginResult.logNotFound:
                if (TXT_USERNAME.Text != string.Empty)
                {
                    msg = "Invalid UserID/Password!";
                }
                break;

            case loginResult.logHasLogon:
                msg = "User is currently logged in!"; break;

            case loginResult.logLocked:
                msg = "User ID is Locked, Please contact your System Administrator!"; break;

            case loginResult.logPwdEmpty:
                msg = "Please type in your password..."; break;

            case loginResult.logPwdInvalid:
                msg = "Invalid UserID/Password"; break;

            case loginResult.logJustLocked:
                msg = "User ID is Locked, Please contact your System Administrator!"; break;

            case loginResult.logGrantInvalid:
                msg = "Server Error : Permission Denied"; break;

            case loginResult.logAuthFail:
                msg = "Login failed. Unable to Authenticate!"; break;

            case loginResult.logNoLOSAccess:
                msg = "User does not have access to CBAS!"; break;

            case loginResult.logNoMenuAccess:
                msg = "Menu Access Not Yet Defined For This User."; break;

            case loginResult.logSessionLost:
                msg = "Session Lost... Please ReLogin"; break;

            case loginResult.logReLogin:
                msg = "Please Re-Login"; break;

            case loginResult.logNewLogin:
                msg = "Please Login"; break;

            case loginResult.logUnknown:
                msg = "Server Error : Unknown Error"; break;
            }

            return(msg);
        }
Ejemplo n.º 8
0
        private static loginResult ValidateLogin(string userName, string password, DbConnection conn, int timeout, bool logon, string host, out string sessionid)
        {
            sessionid = null;
            object[] user = new object[2] {
                userName, host
            };
            loginResult flag = loginResult.logNotFound;
            string      falsepwd = "0", sulogon = "0", surevoke = "0", lastfalsecount = "0";

            conn.ExecReader(Q_VWLOGIN, user, timeout);
            if (!conn.hasRow())
            {
                flag = loginResult.logNotFound;
            }
            else
            {
                surevoke       = conn.GetFieldValue("SU_REVOKE");
                sulogon        = conn.GetFieldValue("SU_LOGON");
                lastfalsecount = conn.GetFieldValue("SU_FALSEPWDCOUNT");
                Encryption.SimpleEncryption enc = new Encryption.SimpleEncryption();

                if (logon)      // If already logon
                {
                    flag = loginResult.logSuccess;
                }
                //else if (FormsAuthentication.HashPasswordForStoringInConfigFile(password, "sha1") == conn.GetFieldValue("SU_PWD"))
                else if (enc.Encrypt(password, true) == conn.GetFieldValue("SU_PWD"))
                {       // If password is correct
                    //if (conn.GetFieldValue("SU_PWD") == FormsAuthentication.HashPasswordForStoringInConfigFile(conn.GetFieldValue("CHECKDEFPWD").Trim(), "sha1"))
                    if (conn.GetFieldValue("SU_PWD") == enc.Encrypt(conn.GetFieldValue("CHECKDEFPWD").Trim(), true))
                    {
                        flag = loginResult.logPwdDefault;
                    }
                    else if (conn.GetFieldValue("DEFPWD") == "1")
                    {
                        flag = loginResult.logPwdDefault;
                    }
                    else if (conn.GetFieldValue("SU_LOGON") == "1")             // Check if user currently logs in...
                    {
                        flag = loginResult.logHasLogon;
                    }
                    else if (conn.GetFieldValue("SU_PWDEXPIRED") == "1")
                    {
                        flag = loginResult.logPwdExpired;
                    }
                    else
                    {
                        flag = loginResult.logSuccess;
                    }
                }
                else
                {
                    // If incorrect password
                    falsepwd = "1";
                    flag     = loginResult.logPwdInvalid;
                    if (password == string.Empty)
                    {
                        falsepwd = "0";
                        flag     = loginResult.logPwdEmpty;
                    }
                }

                if (flag != loginResult.logPwdEmpty)
                {
                    Guid     rand_sessionid = Guid.NewGuid();
                    object[] actiparam      = new object[7] {
                        userName, conn.GetNativeFieldValue("GROUPID"), falsepwd,
                        surevoke, host, sulogon, rand_sessionid.ToString()
                    };
                    conn.ExecuteNonQuery(SP_USERACTIVITY, actiparam, timeout);
                    sessionid = rand_sessionid.ToString();
                }
            }

            //check revoke
            conn.ExecReader(Q_CHECKREVOKE, user, timeout);
            if (conn.hasRow())
            {
                flag = loginResult.logLocked;
                if (surevoke == "0" && conn.GetFieldValue("SU_REVOKE") != "0")
                {
                    flag = loginResult.logJustLocked;
                }
            }

            return(flag);
        }