public ActionResult <loginResult> GetTModels(loginModels login) { var result = new loginResult(); result.token = jwt.GenerateToken(login.username); return(result); }
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); } }
/// <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); }
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..."); }
/// <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); }
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); } } }
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); }
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); }