protected void btnRegister_Click(object sender, EventArgs e)
        {
            log4net.ILog log = PtaUtil.getLog4netLogger(this.GetType().FullName + ".btnRegister_Click(): ");
            try {
                String bb_code = ddlBBoard.SelectedValue;
                //DataValueField.
                String bbRegPwd = txtBBRegPwd.Text;
                //String  proxy_folder = Request.ApplicationPath + Request.Path;
                String proxy_folder = Request.Path;
                proxy_folder = proxy_folder.ToLower().Replace("/admin/register.aspx", "");
                //remove prefixed "/"
//                if (proxy_folder.Length > 0) proxy_folder = proxy_folder.Substring(1);
                if (proxy_folder.Length != 0)
                {
                    if (proxy_folder.Substring(0, 1) != "/")
                    {
                        proxy_folder = "/" + proxy_folder;
                    }
                    if (proxy_folder.Substring(proxy_folder.Length - 1, 1) != "/")
                    {
                        proxy_folder += "/";
                    }
                }
                else
                {
                    proxy_folder = "/";
                }
                log.Debug("Request.ApplicationPath: " + Request.ApplicationPath + "; Request.Path: " + Request.Path + "; proxy_folder: " + proxy_folder);
                //if (proxy_folder.Length != 0) proxy_folder = proxy_folder.Substring(1);
                //                if (!PtaUtil.GetProxyWebFolder().Contains(proxy_folder))
//                if (!PtaUtil.GetProxyWebFolder().Equals(proxy_folder))
//                    throw new Idla.PtaProxy.PtaException("Possibly bad AppSettings[\"PtaProxyWebFolder\"] = " + WebConfigurationManager.AppSettings["PtaProxyWebFolder"]
//                            + "; Calculated proxy_folder = " + proxy_folder + "; PtaUtil.GetProxyWebFolder(): " + PtaUtil.GetProxyWebFolder());
                Idla.PtaProxy.WSCall.RegisterTool(bb_code, bbRegPwd, false);
                lblRegisterResult.Text = "SUCCESS";
                if (!PtaUtil.GetProxyWebFolder().Equals(proxy_folder))
                {
                    lblRegisterResult.Text = lblRegisterResult.Text + ", but possibly bad AppSettings[\"PtaProxyWebFolder\"] = " + WebConfigurationManager.AppSettings["PtaProxyWebFolder"]
                                             + "; Calculated proxy_folder = " + proxy_folder + "; PtaUtil.GetProxyWebFolder(): " + PtaUtil.GetProxyWebFolder() + ". Check it if link redirection or BB actions will fail";
                }
                gvBBoard.DataBind();
            } catch (PtaRegisterToolException rte) {
                lblRegisterResult.Text = "ERROR: " + rte.Message;
            }
        }
        protected override void Action()
        {
            log4net.ILog log = PtaUtil.getLog4netLogger(this.GetType().FullName + ".ActionInternal(): ");
            base.Action();
            String bb_code  = PtaUtil.GetDBReaderStringField(bboardDR, "BBoardCode");
            String bbRegPwd = Request.Form[PtaServerConstants.REGISTRATION_PASSWORD_KEY];

            String proxy_folder = Request.Path;

            log.Debug("proxy_folder before Replace(): " + proxy_folder);
            proxy_folder = proxy_folder.ToLower().Replace("/actions/reregister.aspx", "");
            //remove prefixed "/"
            proxy_folder = proxy_folder.Substring(1);
            log.Debug("Request.ApplicationPath: " + Request.ApplicationPath + "; Request.Path: " + Request.Path + "; proxy_folder: " + proxy_folder);
            //if (proxy_folder.Length != 0) proxy_folder = proxy_folder.Substring(1);
            if (!PtaUtil.GetProxyWebFolder().Contains(proxy_folder))
            {
                throw new Idla.PtaProxy.PtaException("Possibly bad AppSettings[\"PtaProxyWebFolder\"] = " + WebConfigurationManager.AppSettings["PtaProxyWebFolder"]
                                                     + "; Calculated proxy_folder = " + proxy_folder + "; PtaUtil.GetProxyWebFolder(): " + PtaUtil.GetProxyWebFolder());
            }
            Idla.PtaProxy.RegisterToolWSCall.RegisterTool(bb_code, bbRegPwd, true);
            Response.Output.Write(PtaServerConstants.SIMPLE_SUCCESS_RESPONSE);
        }