Beispiel #1
0
        public void UserLoginByEmail(string email, string login, string password, WMStartPage startPage, string toEmail)
        {
            Account acct = Account.LoginAccount(email, login, password);

            if (acct != null)
            {
                string    sessionHash = Utils.GetMD5DigestHexString(HttpContext.Current.Session.SessionID);
                DbStorage storage     = DbStorageCreator.CreateDatabaseStorage(acct);
                try
                {
                    storage.Connect();
                    storage.CreateTempRow(acct.ID, string.Format(@"sessionHash_{0}", sessionHash));
                }
                catch (WebMailException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    throw new WebMailDatabaseException(ex);
                }
                finally
                {
                    storage.Disconnect();
                }

                HttpContext.Current.Response.Redirect(_wmRoot + @"/" + string.Format(@"integration/integr.aspx?hash={0}&scr={1}&to={2}", sessionHash, (int)startPage, toEmail), false);
            }
        }
Beispiel #2
0
 public void UserLoginByEmail(string email, string login, string pass, WMStartPage startPage)
 {
     UserLoginByEmail(email, login, pass, startPage, null);
 }
Beispiel #3
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string hash   = Request.QueryString["hash"] as string;
            string screen = Request.QueryString["scr"] as string;
            string to     = Request.QueryString["to"] as string;

            if ((hash != null) && (hash.Length >= 0))
            {
                WebmailSettings settings = (new WebMailSettingsCreator()).CreateWebMailSettings();
                TempRow         row      = null;
                DbStorage       storage  = DbStorageCreator.CreateDatabaseStorage(null);
                try
                {
                    storage.Connect();
                    row = storage.GetTempRow(-1, string.Format(@"sessionHash_{0}", hash));
                    if (row != null)
                    {
                        storage.DeleteTempRow(row.ID);
                    }
                    else
                    {
                        throw new WebMailException("Temp Row Is NULL");
                    }
                }
                catch (Exception ex)
                {
                    Log.WriteException(ex);
                    Response.Redirect(@"../default.aspx", true);
                }
                finally
                {
                    storage.Disconnect();
                }

                if (row != null)
                {
                    Account acct = Account.LoadFromDb(row.IDAcct, -1, false);
                    if (Session[Constants.sessionAccount] == null)
                    {
                        Session.Add(Constants.sessionAccount, acct);
                    }
                    else
                    {
                        Session[Constants.sessionAccount] = acct;
                    }
                    if (Session[Constants.sessionUserID] == null)
                    {
                        Session.Add(Constants.sessionUserID, acct.IDUser);
                    }
                    else
                    {
                        Session[Constants.sessionUserID] = acct.IDUser;
                    }

                    WMStartPage page = WMStartPage.Mailbox;
                    try
                    {
                        short scrNum = short.Parse(screen);
                        page = (WMStartPage)scrNum;
                    } catch {}
                    switch (page)
                    {
                    case WMStartPage.NewMessage:
                        if (to != null)
                        {
                            to = string.Format(@"&to={0}", to);
                        }
                        goto default;

                    case WMStartPage.Settings:
                        goto default;

                    case WMStartPage.Contacts:
                        goto default;

                    case WMStartPage.Mailbox:
                        goto default;

                    case WMStartPage.Calendar:
                        goto default;

                    default:
                        string check = string.Empty;
                        if (acct.GetMailAtLogin)
                        {
                            check = "check=1&";
                        }
                        HttpContext.Current.Response.Redirect(string.Format(@"../webmail.aspx?" + check + @"start={0}{1}", (int)page, to));
                        break;
                    }
                }
            }
        }