public void Page_Load(object sender, EventArgs e)
    {
        gridManage.OnGetDataSource += new EventHandler(gridManage_OnGetDataSource);
        if (!IsPostBack)
        {
            string openidmode = Request["openid.mode"];
            if (!string.IsNullOrEmpty(openidmode))
            {
                NameValueCollectionSerializer serializer = new NameValueCollectionSerializer(Request.Params);
                SessionManager.AccountService.CreateAccountOpenId(
                    SessionManager.Ticket, SessionManager.OpenIdToken, serializer.Names, serializer.Values);
                Redirect(Request.Path);
                return;
            }

            gridManage_OnGetDataSource(sender, e);
            gridManage.DataBind();

            SiteMapDataAttribute sitemapdata = new SiteMapDataAttribute();
            sitemapdata.Add(new SiteMapDataAttributeNode("Me Me", Request, "AccountManage.aspx"));
            sitemapdata.Add(new SiteMapDataAttributeNode("Open-ID", Request.Url));
            StackSiteMap(sitemapdata);
        }

        SetDefaultButton(manageAdd);
    }
Beispiel #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            try
            {
                string openidmode = Request["openid.mode"];
                string openidtoken = SessionManager.OpenIdToken;
                if (!string.IsNullOrEmpty(openidmode) && !string.IsNullOrEmpty(openidtoken))
                {
                    NameValueCollectionSerializer serializer = new NameValueCollectionSerializer(Request.Params);
                    string ticket = SessionManager.AccountService.LoginOpenId(openidtoken, serializer.Names, serializer.Values);
                    SessionManager.Login(ticket, SessionManager.RememberLogin);
                    Redirect(ReturnUrl);
                    return;
                }

                if (AuthenticatedPage)
                {
                    ReportInfo("This is a members only page. You must first login. There're many perks of being a member " +
                        "and it's free. Click <a href=\"AccountCreate.aspx\">here</a> to join!");
                }
            }
            catch
            {
                SessionManager.Logout();
                throw;
            }
        }
    }
    public void Page_Load(object sender, EventArgs e)
    {
        SetDefaultButton(inputCreateOpenId);

        if (!IsPostBack)
        {
            if (!string.IsNullOrEmpty(Request["betapassword"]))
                inputBetaPassword.Attributes["value"] = Request["betapassword"];

            if (!string.IsNullOrEmpty(Request["ConsumerUrl"]))
            {
                inputOpenId.Text = Request["ConsumerUrl"];
                inputOpenId.Enabled = false;
            }

            panelBeta.Visible = SessionManager.AccountService.IsBetaPasswordSet();

            linkAdministrator.OnClientClick =
                string.Format("location.href='mailto:{0}';",
                   SessionManager.GetCachedConfiguration(
                        "SnCore.Admin.EmailAddress", "*****@*****.**"));

            TrySetControlValueFromCookie("SnCore.AccountCreate.Name", inputName);
            TrySetControlValueFromCookie("SnCore.AccountCreate.BetaPassword", inputBetaPassword);
            TrySetControlValueFromCookie("SnCore.AccountCreate.Birthday", inputBirthday);
            TrySetControlValueFromCookie("SnCore.AccountCreate.Email", inputEmailAddress);

            string openidmode = Request["openid.mode"];
            if (!string.IsNullOrEmpty(openidmode))
            {
                NameValueCollectionSerializer serializer = new NameValueCollectionSerializer(Request.Params);
                
                TransitAccount ta = new TransitAccount();
                ta.Name = inputName.Text;
                ta.Birthday = inputBirthday.SelectedDate;
 
                int id = SessionManager.AccountService.CreateAccountWithOpenId(
                    inputBetaPassword.Text.Trim(),
                    SessionManager.OpenIdToken,
                    serializer.Names,
                    serializer.Values,
                    inputEmailAddress.Text.Trim(),
                    ta);

                string ticket = ManagedAccount.GetTicketFromAccountId(id);
                SessionManager.Login(ticket, false);
                Redirect("AccountCreateWelcome.aspx");
            }

            if (SessionManager.IsLoggedIn)
            {
                ReportInfo("You're already logged-in. Click <a href='AccountManage.aspx'>here</a> to continue.");
                panelCreateOpenId.Enabled = false;
                return;
            }
        }
    }
Beispiel #4
0
        public Facebook.Schema.user GetUser(string[] cookieNames, string[] cookieValues)
        {
            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;
                Facebook.Session.ConnectSession facebookSession = new Facebook.Session.ConnectSession(
                    ManagedConfiguration.GetValue(session, "Facebook.APIKey", ""),
                    ManagedConfiguration.GetValue(session, "Facebook.Secret", ""));

                TransitAccount ta = new TransitAccount();
                NameValueCollectionSerializer facebookCookies = new NameValueCollectionSerializer(cookieNames, cookieValues);
                facebookSession.SessionKey = facebookCookies.Collection["session_key"];
                facebookSession.UserId = long.Parse(facebookCookies.Collection["user"]);
                
                Facebook.Rest.Api facebookAPI = new Facebook.Rest.Api(facebookSession);
                return facebookAPI.Users.GetInfo();
            }
        }
    public void Page_Load(object sender, EventArgs e)
    {
        try
        {
            PageManager.SetDefaultButton(loginLogin, Controls);

            if (!IsPostBack)
            {
                linkAdministrator.OnClientClick =
                    string.Format("location.href='mailto:{0}';",
                       SessionManager.GetCachedConfiguration(
                            "SnCore.Admin.EmailAddress", "*****@*****.**"));

                FacebookPageManager facebook = new FacebookPageManager(SessionManager);

                if (string.IsNullOrEmpty(facebook.FacebookAPIKey))
                {
                    panelFacebookLogin.Visible = false;
                    facebookLoginDisabled.Visible = true;
                }

                string openidmode = Request["openid.mode"];
                string openidtoken = SessionManager.OpenIdToken;
                if (!string.IsNullOrEmpty(openidmode) && !string.IsNullOrEmpty(openidtoken))
                {
                    NameValueCollectionSerializer serializer = new NameValueCollectionSerializer(Request.Params);
                    TransitOpenIdLogin t_login = SessionManager.AccountService.TryLoginOpenId(openidtoken, serializer.Names, serializer.Values);
                    if (!string.IsNullOrEmpty(t_login.Ticket))
                    {
                        SessionManager.Login(t_login.Ticket, SessionManager.RememberLogin);
                        Redirect(ReturnUrl);
                    }
                    else
                    {
                        Redirect(string.Format("AccountCreateOpenId.aspx?ReturnUrl={0}&ConsumerUrl={1}",
                            Renderer.UrlEncode(ReturnUrl), Renderer.UrlEncode(t_login.ConsumerUrl)));
                    }
                }

                string facebookConnect = Request["connect"];
                if (!string.IsNullOrEmpty(facebookConnect))
                {
                    SortedList<string, string> facebookCookies = facebook.GetFacebookCookies(HttpContext.Current.Request.Cookies);
                    List<String> keys = new List<String>(facebookCookies.Keys);
                    List<String> values = new List<String>(facebookCookies.Values);
                    TransitFacebookLogin t_login = SessionManager.AccountService.TryLoginFacebook(
                        HttpContext.Current.Request.Cookies[facebook.FacebookAPIKey].Value, keys.ToArray(), values.ToArray());

                    if (string.IsNullOrEmpty(t_login.Ticket))
                    {
                        Redirect("AccountCreateFacebook.aspx?connect=1");
                        return;
                    }

                    SessionManager.Login(t_login.Ticket, SessionManager.RememberLogin);
                    Redirect(ReturnUrl);
                }

                if (SessionManager.IsLoggedIn)
                {
                    ReportInfo("You're already logged-in. Click <a href='AccountManage.aspx'>here</a> to continue.", false);
                    loginLogin.Enabled = false;
                }
            }
        }
        catch
        {
            SessionManager.Logout();
            throw;
        }
    }
Beispiel #6
0
        public int CreateAccountWithFacebook(string betapassword, string signature, string[] names, string[] values)
        {
            TransitFacebookLogin t_facebook = TryLoginFacebook(signature, names, values);
            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;

                string s = ManagedConfiguration.GetValue(session, "SnCore.Beta.Password", string.Empty);
                if (s != betapassword)
                {
                    throw new ManagedAccount.AccessDeniedException();
                }

                ManagedAccount acct = new ManagedAccount(session);

                // fetch account information
                Facebook.Session.ConnectSession facebookSession = new Facebook.Session.ConnectSession(
                    ManagedConfiguration.GetValue(session, "Facebook.APIKey", ""),
                    ManagedConfiguration.GetValue(session, "Facebook.Secret", ""));

                TransitAccount ta = new TransitAccount();
                NameValueCollectionSerializer facebookCookies = new NameValueCollectionSerializer(names, values);
                facebookSession.SessionKey = facebookCookies.Collection["session_key"];
                facebookSession.UserId = t_facebook.FacebookAccountId;
                Facebook.Rest.Api facebookAPI = new Facebook.Rest.Api(facebookSession);
                Facebook.Schema.user user = facebookAPI.Users.GetInfo();
                ta.Name = user.name;
                DateTime birthday = DateTime.Today;
                DateTime.TryParse(user.birthday_date, out birthday);
                ta.Birthday = birthday;
                acct.CreateWithFacebook(t_facebook.FacebookAccountId, user.proxied_email, 
                    ta, ManagedAccount.GetAdminSecurityContext(session));

                if (user.current_location != null)
                {
                    ta.City = user.current_location.city;

                    int country_id;
                    if (ManagedCountry.TryGetCountryId(session, user.current_location.country, out country_id))
                        ta.Country = user.current_location.country;
                    
                    int state_id;
                    if (ManagedState.TryGetStateId(session, user.current_location.state, user.current_location.country, out state_id))
                        ta.State = user.current_location.state;
                }

                if (user.picture_big != null)
                {
                    TransitAccountPicture t_picture = new TransitAccountPicture();
                    t_picture.AccountId = acct.Id;
                    ThumbnailBitmap bitmap = new ThumbnailBitmap(new Bitmap(user.picture_big));
                    t_picture.Bitmap = bitmap.Bitmap;
                    t_picture.Thumbnail = bitmap.Thumbnail;
                    t_picture.Name = user.pic;
                    ManagedAccountPicture m_picture = new ManagedAccountPicture(session);
                    m_picture.CreateOrUpdate(t_picture, ManagedAccount.GetAdminSecurityContext(session));
                }

                SnCore.Data.Hibernate.Session.Flush();
                return acct.Id;
            }
        }