示例#1
0
    private void PopulateData()
    {
        int activemembers = new SnitzMembershipProvider().GetNumberOfUsersOnline();
        int totalsessions = Convert.ToInt32(Application["SessionCount"]);
        int dailySessions = Convert.ToInt32(Application["DailyCount"]);
        var dSession      = String.Format("{0} visitor(s) today", dailySessions);
        int anonusers     = totalsessions - activemembers;

        GetCounts();

        if (!string.IsNullOrEmpty(HttpContext.Current.User.Identity.Name))
        {
            lblLastVisit.Text  = webResources.lblStatsLastVisit;
            lblLastVisit.Text += SnitzTime.TimeAgoTag(_page.LastVisitDateTime, true, _page.Member);
        }
        else
        {
            lblLastVisit.Visible = false;
        }

        string newmemberlink = String.Format(PROFILE_URL, _stats.NewestMember, String.Format(webResources.lblViewProfile, _stats.NewestMember));

        lblNewestMember.Text   = string.Format(webResources.lblStatsNewMember, newmemberlink);
        lblMemberStats.Text    = string.Format(webResources.lblStatsMembers, _activeMembers, Common.TranslateNumerals(_memberCount), Common.TranslateNumerals(_totalPostCount), GetLastPost(), GetLastPostAuthor());
        lblTopicStats.Text     = string.Format(webResources.lblStatsTopics, Common.TranslateNumerals(_topicCount), _stats.ActiveTopicCount);
        lblArchiveStats.Text   = string.Format(webResources.lblStatsArchive, Common.TranslateNumerals(_archiveTopicCount + _archiveReplyCount), Common.TranslateNumerals(_archiveTopicCount));
        lblActiveSessions.Text = extras.GuestLabel + anonusers;
        string[] onlineusers = new SnitzMembershipProvider().GetOnlineUsers();
        var      remains     = onlineusers.Except(Config.AnonMembers);

        lblActiveUsers.Text = string.Format(webResources.lblStatsMembersOnline, String.Join(",", remains.ToArray())) + "<br/>" + dSession;
    }
示例#2
0
 protected void CreateUserWizard1SendingMail(object sender, MailMessageEventArgs e)
 {
     //Send the new member his password and security key
     //Message Body is in /App_Data/RegisterMail.txt
     var mp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];
     //string msg;
     var cuw = (CreateUserWizard)sender;
     //string validationCode = cuw.Question;
     //Get the MembershipUser that we just created.
     var newUser = (SnitzMembershipUser)Membership.GetUser(cuw.UserName);
     //Create the validation code
     if (mp != null)
     {
         string validationCode = SnitzMembershipProvider.CreateValidationCode(newUser);
         mp.ChangePasswordQuestionAndAnswer(cuw.UserName, cuw.Password, validationCode, "validationcode");
         //And build the url for the validation page.
         var builder = new UriBuilder("http",
                                             Request.Url.DnsSafeHost,
                                             Request.Url.Port, Page.ResolveUrl("~/Account/activate.aspx"), "?C=" + validationCode);
         //Add the values to the mail message.
         e.Message.Body = e.Message.Body.Replace("<%OurForum%>", Config.ForumTitle);
         e.Message.Body = e.Message.Body.Replace("<%activationURL%>", builder.Uri.ToString().Replace(" ", "%20"));
         e.Message.Body = e.Message.Body.Replace("<%activationKey%>", validationCode);
     }
 }
示例#3
0
    protected void approveAll_Click(object sender, EventArgs e)
    {
        StringBuilder usernames = new StringBuilder();

        for (int i = 0; i < GridViewMemberUser.Rows.Count; i++)
        {
            GridViewRow row    = GridViewMemberUser.Rows[i];
            CheckBox    select = (CheckBox)row.FindControl("chkSelect");
            usernames.Append(select.ToolTip + ",");
        }
        SnitzMembershipProvider smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];

        string[] arrUsers = usernames.ToString().TrimEnd(',').Split(',');
        foreach (string user in arrUsers)
        {
            if (smp != null)
            {
                if (SnitzMembershipProvider.ActivateUser(user))
                {
                    //smp.UnlockUser(user);
                    Roles.AddUserToRole(user, "Member");
                    EmailConfirmation(user);
                }
            }
        }
        GridViewMemberUser.DataBind();
    }
示例#4
0
    protected void delSel_Click(object sender, EventArgs e)
    {
        StringBuilder str = new StringBuilder();

        for (int i = 0; i < GridViewMemberUser.Rows.Count; i++)
        {
            GridViewRow row    = GridViewMemberUser.Rows[i];
            CheckBox    select = (CheckBox)row.FindControl("chkSelect");
            if (select.Checked)
            {
                str.Append(select.ToolTip + ",");
            }
        }

        SnitzProfileProvider pro = (SnitzProfileProvider)ProfileManager.Providers["TableProfileProvider"];
        string usernameList      = str.ToString().TrimEnd(',');

        if (pro != null)
        {
            pro.DeleteProfiles(usernameList.Split(','));
        }

        foreach (string user in usernameList.Split(','))
        {
            var mp = new SnitzMembershipProvider();
            mp.DeleteUser(user, true);
            //Membership.DeleteUser(user,true);
        }
        GridViewMemberUser.DataBind();
    }
示例#5
0
        protected void BtnChangePassClick(object sender, EventArgs e)
        {
            var  smp    = new SnitzMembershipProvider();
            bool result = smp.ChangePassword(_profileUser, tbxPassword.Text, tbxNewPass.Text);

            if (result)
            {
                var req = new RequiredFieldValidator
                {
                    ValidationGroup = "passChange",
                    ErrorMessage    = "Password changed successfully",
                    IsValid         = false
                };
                Page.Form.Controls.Add(req);
                req.Visible = false;
            }
            else
            {
                var req = new RequiredFieldValidator
                {
                    ValidationGroup = "passChange",
                    ErrorMessage    = "Failed to change password",
                    IsValid         = false
                };
                Page.Form.Controls.Add(req);
                req.Visible = false;
            }
        }
示例#6
0
    protected void resend_Click(object sender, EventArgs e)
    {
        StringBuilder usernames = new StringBuilder();
        string        path      = Config.CultureSpecificDataDirectory + "ValidationEmail.html";
        var           email     = File.ReadAllText(Server.MapPath(path));

        for (int i = 0; i < GridViewMemberUser.Rows.Count; i++)
        {
            GridViewRow row    = GridViewMemberUser.Rows[i];
            CheckBox    select = (CheckBox)row.FindControl("chkSelect");
            if (select.Checked)
            {
                usernames.Append(select.ToolTip + ",");
            }
        }
        SnitzMembershipProvider smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];

        string[] arrUsers = usernames.ToString().TrimEnd(',').Split(',');
        foreach (string user in arrUsers)
        {
            if (smp != null)
            {
                MembershipUser mu = Membership.GetUser(user, false);
                //todo:
                //need to reset password ??
                //email.Replace("<%UserName%>", mu.UserName).Replace("<%OurForum%>", Config.ForumUrl).Replace("<%activationKey%>", mu.PasswordQuestion;);
            }
        }
    }
示例#7
0
        public void Initialize()
        {
            NameValueCollection nv = new NameValueCollection();

            nv.Add("connectionStringName", "MyTest2");
            prov = new SnitzMembershipProvider();
            prov.Initialize("SnitzMembershipProvider", nv);
        }
示例#8
0
    private void LockUser(string user)
    {
        SnitzMembershipProvider smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];

        if (!String.IsNullOrEmpty(user))
        {
            if (smp != null)
            {
                smp.LockUser(user);
            }
        }
    }
示例#9
0
    private void DeleteUser(string user)
    {
        SnitzMembershipProvider smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];

        if (!String.IsNullOrEmpty(user))
        {
            if (smp != null)
            {
                smp.DeleteUser(user, false);
            }
        }
        GetUsers();
    }
示例#10
0
        protected void ChangeEmailClick(object sender, EventArgs e)
        {
            if ((newemail.Text.Trim() == "") || (newemail.Text == @"Enter a new Email .."))
            {
                return;
            }

            var smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];

            if (smp != null)
            {
                MembershipUser mu = smp.GetUser(HttpContext.Current.User.Identity.Name, false);
                SnitzMembershipProvider.ChangeEmail(mu, false, newemail.Text);
                SendEmail(mu);
            }
            Lemail.Visible         = true;
            btnChangeEmail.Visible = false;
            newemail.Visible       = false;
        }
示例#11
0
    private void PopulateData()
    {
        int activemembers = new SnitzMembershipProvider().GetNumberOfUsersOnline();
        int totalsessions = Convert.ToInt32(Application["SessionCount"]);
        int dailySessions = Convert.ToInt32(Application["DailyCount"]);
        var dSession      = String.Format("{0} visitor(s) today", dailySessions);
        int anonusers     = totalsessions - activemembers;

        GetCounts();
        string newmemberlink = String.Format(PROFILE_URL, _stats.NewestMember, String.Format(webResources.lblViewProfile, _stats.NewestMember));

        lblNewestMember.Text   = string.Format(webResources.lblMiniStatsNewMember, newmemberlink);
        lblMemberStats.Text    = string.Format(webResources.lblMiniStatsMembers, Common.TranslateNumerals(_memberCount), Common.TranslateNumerals(_totalPostCount), GetLastPost(), GetLastPostAuthor());
        lblTopicStats.Text     = string.Format(webResources.lblMiniStatsTopics, Common.TranslateNumerals(_stats.ActiveTopicCount));
        lblActiveSessions.Text = extras.GuestLabel + Common.TranslateNumerals(anonusers);
        string[] onlineusers = new SnitzMembershipProvider().GetOnlineUsers();
        var      remains     = onlineusers.Except(Config.AnonMembers);

        lblActiveUsers.Text = string.Format(webResources.lblStatsMembersOnline, String.Join(",", remains.ToArray())) + "<br/>" + dSession;
    }
示例#12
0
    protected void btnOk_Click(object sender, EventArgs e)
    {
        switch (mode)
        {
        case "C":
            strError = webResources.ErrNotImplemented;
            break;

        case "F":
            strError = webResources.ErrNotImplemented;
            break;

        case "M":
            SnitzMembershipProvider smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];
            if (smp != null)
            {
                smp.DeleteUser(username, true);
            }
            break;

        case "R":
            strError = "";
            strError = Topic.DeleteReply(DeleteId, TopicId, ForumId);
            break;

        case "T":
            strError = "";
            strError = Topic.DeleteTopic(DeleteId, ForumId, IsAuthor, IsAdmin);
            CloseWindow("active.aspx");
            break;
        }
        if (strError == "")
        {
            Forum.UpdateForumCounts();
        }
    }
示例#13
0
        protected void BtnActivateClick(object sender, EventArgs e)
        {
            MembershipUser mu = Membership.GetUser(username.Text, false);

            Page.Validate();
            if (Page.IsValid)
            {
                ActivationPanel.Visible = false;
                ActivatedPanel.Visible  = true;
                if (string.IsNullOrEmpty(Request.Params["E"]))
                {
                    //we are already approved so lets quit
                    if (mu != null && mu.IsApproved)
                    {
                        litAccepted.Visible     = false;
                        litValidated.Visible    = false;
                        litAlreadyValid.Visible = true;
                        return;
                    }

                    if (Config.RestrictRegistration)
                    {
                        litAccepted.Visible     = false;
                        litValidated.Visible    = true;
                        litAlreadyValid.Visible = false;

                        if (mu != null)
                        {
                            mu.UnlockUser();
                        }
                    }
                    else
                    {
                        litAccepted.Visible     = true;
                        litValidated.Visible    = false;
                        litAlreadyValid.Visible = false;
                        if (mu != null)
                        {
                            mu.UnlockUser();
                        }
                        if (SnitzMembershipProvider.ActivateUser(username.Text)) //we need to activate in order to validate login
                        {
                            //we passed so lets unlock and add to member role

                            Roles.AddUserToRole(username.Text, "Member");
                        }
                    }
                }
                else if (Request.Params["E"] == "T")
                {
                    if (SnitzMembershipProvider.ChangeEmail(mu, true, null))
                    {
                        litValidated.Visible = true;
                    }
                    else
                    {
                        throw new Exception("Email change failed");
                    }
                }
            }
        }
示例#14
0
        private void SendEmail(MembershipUser sender)
        {
            string mailFile = Server.MapPath("~/App_Data/ChangeMail.html");

            string strSubject = "Sent From " + Regex.Replace(Config.ForumTitle, @"&\w+;", "") + ": Email change request";

            var builder = new UriBuilder("http",
                                         Request.Url.DnsSafeHost,
                                         Request.Url.Port, Page.ResolveUrl("~/Account/activate.aspx"), string.Format("?C={0}&E=T", SnitzMembershipProvider.CreateValidationCode(sender)));

            var    file    = new StreamReader(mailFile);
            string msgBody = file.ReadToEnd();

            msgBody = msgBody.Replace("<%UserName%>", sender.UserName);
            msgBody = msgBody.Replace("<%ForumTitle%>", Config.ForumTitle);
            msgBody = msgBody.Replace("<%validationURL%>", builder.Uri.AbsoluteUri);

            var mailsender = new SnitzEmail
            {
                toUser   = new MailAddress(newemail.Text, sender.UserName),
                FromUser = "******",
                subject  = strSubject,
                msgBody  = msgBody
            };

            mailsender.Send();
        }
示例#15
0
    protected void MenuItemDataBound(object sender, MenuEventArgs e)
    {
        PageBase       page = (PageBase)Page;
        MembershipUser mu   = Membership.GetUser(false);

        if (e.Item.NavigateUrl.ToLower().Contains("action=validate") || e.Item.NavigateUrl.ToLower().Contains("pendingmembers"))
        {
            int pCount = SnitzMembershipProvider.GetUnApprovedMemberCount();
            e.Item.Enabled = false;
            if (pCount > 0)
            {
                e.Item.Enabled = true;
                e.Item.Text   += @" (" + pCount + @")";
            }
        }
        if (e.Item.NavigateUrl.ToLower().Contains("events"))
        {
            if (!ConfigHelper.IsModEnabled("EventsConfig"))
            {
                e.Item.Text    = "";
                e.Item.Enabled = false;
            }
        }
        if (e.Item.NavigateUrl.Contains("gallery.aspx"))
        {
            if (e.Item.NavigateUrl.Contains("mygallery.aspx"))
            {
                if (!Config.UserGallery)
                {
                    e.Item.Text    = "";
                    e.Item.Enabled = false;
                }
            }
            else
            {
                if (!Config.ShowGallery)
                {
                    e.Item.Text    = "";
                    e.Item.Enabled = false;
                }
            }
        }
        if (e.Item.NavigateUrl.ToLower().Contains("privatemessage"))
        {
            int unreadcount = 0;

            if (((PageBase)Page).Member != null)
            {
                unreadcount = PrivateMessages.GetUnreadPMCount(((PageBase)Page).Member.Id);
            }
            if (unreadcount > 0)
            {
                e.Item.Text += string.Format(" ({0})", unreadcount);
            }
            if (!Config.PrivateMessaging)
            {
                e.Item.Text    = "";
                e.Item.Enabled = false;
            }
        }
        if (e.Item.NavigateUrl.ToLower().Contains("active"))
        {
            if (mu != null)
            {
                int unreadcount = Topics.GetNewTopicCount(page.LastVisitDateTime.ToForumDateStr(), page.IsAdministrator || page.IsModerator, 0, 100);
                if (unreadcount > 0)
                {
                    e.Item.Text += @" (" + unreadcount + @")";
                }
            }
        }
    }
示例#16
0
    private void Page_Load(object sender, EventArgs e)
    {
        if (Request.Params["ID"] == null)
        {
            Response.Redirect("error.aspx?msg=errInvalidForumId");
        }
        mode      = Request.Params["mode"];
        LockState = Int32.Parse(Request.Params["lock"]);

        if (mode == "M")
        {
            user = Request.Params["ID"];
        }
        else
        {
            LockId  = Int32.Parse(Request.Params["ID"]);
            ForumId = Int32.Parse(Request.Params["FId"]);
        }

        CanLock = (Roles.IsUserInRole(HttpContext.Current.User.Identity.Name, "Administrator") || Moderators.IsUserForumModerator(HttpContext.Current.User.Identity.Name, ForumId));
        if (!CanLock)
        {
            CloseWindow();
        }


        if (Page.IsPostBack)
        {
            switch (mode.ToUpper())
            {
            case "M":
                SnitzMembershipProvider smp = (SnitzMembershipProvider)Membership.Providers["SnitzMembershipProvider"];
                if (smp != null)
                {
                    switch (LockState)
                    {
                    case 0:
                        if (!String.IsNullOrEmpty(user))
                        {
                            if (smp.UnlockUser(user))
                            {
                                strError = "Member Un-Locked";
                            }
                        }
                        break;

                    case 1:
                        if (!String.IsNullOrEmpty(user))
                        {
                            if (smp.LockUser(user))
                            {
                                strError = "Member Locked";
                            }
                        }
                        break;
                    }
                }

                break;
            }
        }
        else
        {
            switch (mode.ToUpper())
            {
            case "T":
                switch (LockState)
                {
                case 0:
                    Page.Title = webResources.lblLock;
                    ((Label)Master.FindControl("Label1")).Text = webResources.lblLock;
                    break;

                case 1:
                    Page.Title = webResources.lblUnlock;
                    ((Label)Master.FindControl("Label1")).Text = webResources.lblUnlock;
                    break;
                }

                break;

            case "F":
                switch (LockState)
                {
                case 0:
                    Page.Title = webResources.lblLockForum;
                    ((Label)Master.FindControl("Label1")).Text = webResources.lblLockForum;
                    break;

                case 1:
                    Page.Title = webResources.lblUnLockForum;
                    ((Label)Master.FindControl("Label1")).Text = webResources.lblUnLockForum;
                    break;
                }

                break;

            case "M":
                switch (LockState)
                {
                case 0:
                    Page.Title = webResources.lblUnlockUser;
                    ((Label)Master.FindControl("Label1")).Text = String.Format(webResources.lblUnlockUser, user);
                    break;

                case 1:
                    Page.Title = webResources.lblLockUser;
                    ((Label)Master.FindControl("Label1")).Text = String.Format(webResources.lblLockUser, user);
                    break;
                }
                break;
            }
        }
    }