2

私のsite.masterデザインに次のloginviewコードがあります

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
                <AnonymousTemplate>
                    [ <a href="Log.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
                </AnonymousTemplate>
                <LoggedInTemplate>
                    Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
                    [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/"/> ]
                </LoggedInTemplate>
            </asp:LoginView>

log.aspx.csファイルのコードは次のとおりです。

 protected void Page_Load(object sender, EventArgs e)
    {
        Master.FindControl("CAMenu").Visible = false;
    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        if (txtUsername.Text == "admin" && txtPassword.Text == "1234")
        {
            Response.Redirect("NewEvent.aspx");
        }
    }

しかし、ログインビューはWelcome"Username"に更新されていません。私は何かを変更する必要がありますか?助けてください

4

3 に答える 3

1

ログイン制御onauthenticateイベントを使用します。

protected void OnAuthenticate(object sender, AuthenticateEventArgs e)
    {
 if (txtUsername.Text == "admin" && txtPassword.Text == "1234")
        {
            e.Authenticated = true;
        }
        else {
            e.Authenticated = false;
        }    

}
于 2012-04-19T10:52:23.827 に答える
1

Login.Aspxで、次の変更を行いました。

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Master.FindControl("CAMenu").Visible = false;
            Master.FindControl("loginStatus").Visible = false;
        }
        catch (Exception ex)
        {
            new Logger().Log("ShortCom.Login.btnLogin_Click(object sender, EventArgs e)", ex.Message);
            Response.Redirect("~/Error.aspx");
        }
    }
    protected void LoadMessageBox(string MessageID)
    {
        try
        {
            messages = new GUIMessages();
            popupExtend = new ModalPopupExtender();
            lbMessage = (Label)Master.FindControl("label5");
            lbMessage.Text = messages.GetGUIMessage(GUIModule.Login, MessageID);
            popupExtend = (ModalPopupExtender)Master.FindControl("popupExtender");
            popupExtend.Show();
        }
        catch (Exception ex)
        {
            new Logger().Log("ShortCom.Login.LoadMessageBox(string MessageID)", ex.Message);
            Response.Redirect("~/Error.aspx");
        }
    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        try
        {
            string userName = txtUsername.Text;
            string password = txtPassword.Text;

            if (userName == string.Empty && password == string.Empty)
            {
                LoadMessageBox("5");
                txtUsername.Focus();


                return;
            }
            if (userName == string.Empty)
            {
                LoadMessageBox("1");
                txtUsername.Focus();
                return;
            }
            else if (password == string.Empty)
            {
                LoadMessageBox("3");

                txtPassword.Focus();
                return;
            }

            User user = new User(userName);
            DataTable tab = new DataTable();
            tab = user.GetUserDetails(userName);
            string firstName = string.Empty;
            string userPassword = string.Empty;
            string RoleID = string.Empty;
            string userID = string.Empty;
            Session["UserName"] = userName;
            if (tab.Rows.Count == 0)
            {
                LoadMessageBox("6");
                txtPassword.Text = string.Empty;
                txtUsername.Text = string.Empty;
                txtUsername.Focus();
                return;
            }

            if (tab.Rows.Count == 1)
            {
                userID = tab.Rows[0][0].ToString();
                firstName = tab.Rows[0][1].ToString();
                userPassword = tab.Rows[0][2].ToString();
                RoleID = tab.Rows[0][3].ToString();
                Session["UserID"] = userID;
            }

                if (userPassword == password)
                {
                    Response.Redirect("~/Default.aspx");
                }
                else
                {
                    LoadMessageBox("4");
                    txtPassword.Focus();
                    return;
                }

        }
        catch (Exception ex)
        {
            new Logger().Log("ShortCom.Login.btnLogin_Click(object sender, EventArgs e)", ex.Message);
            Response.Redirect("~/Error.aspx");
        }
    }

そしてSite.Masterで:-

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            if (Page.Title != "Login")
            {
                if (Session.Count == 0 || Session["Username"] == null)
                    Response.Redirect("~/Login.aspx", true);
                CheckRole();

            }
            lblDateTime.Text = "";
        }
        catch (Exception ex)
        {
            new Logger().Log("ShortCom.SiteMaster.Page_Load()(object sender, EventArgs e)", ex.Message);
            Response.Redirect("~/Error.aspx");
        }
      }

    public void CheckRole()
    {
        try
        {
            if (System.Web.HttpContext.Current.Session.Count > 0)
            {
                string firstName = string.Empty;
                // string userPassword = string.Empty;
                string RoleID = string.Empty;
                Common common = new Common();
                DataTable tab = new DataTable();
                string userName = (string)Session["UserName"];
                User user = new User(userName);
                tab = user.GetUserDetails(userName);

                if (tab.Rows.Count == 1)
                {
                    firstName = tab.Rows[0][1].ToString();
                    RoleID = tab.Rows[0][3].ToString();
                }

                if (RoleID != "1")
                {
                    int count = CAMenu.Items.Count;
                    if (count == 5)
                    {
                        for (int menuCount = 3; menuCount > 0; menuCount--)
                        {
                            string text = CAMenu.Items[menuCount - 1].Text;
                            CAMenu.Items.RemoveAt(menuCount - 1);
                        }
                    }
                    lbLoginMessage.Text = "Welcome," + " " + firstName;
                    loginStatus.Visible = true;
                }
                else
                {
                    lbLoginMessage.Text = "Welcome," + " " + firstName;
                    loginStatus.Visible = true;
                }

            }
            else
            {
                Session.Abandon();
                Response.Redirect("~/Login.aspx", true);
            }
        }
        catch (Exception ex)
        {
            new Logger().Log("ShortCom.SiteMaster.CheckRole()", ex.Message);
            Response.Redirect("~/Error.aspx");
        }
    }
于 2012-05-24T09:19:23.207 に答える
0

これを試して...

これをログインコントロールに追加します。イベントハンドラーを認証します...(IN VBお願いします)

If Membership.ValidateUser(login2.UserName, login2.Password) Then

            If Not Request.QueryString("ReturnUrl") Then

                FormsAuthentication.RedirectFromLoginPage(login2.UserName, False)

            Else

                FormsAuthentication.SetAuthCookie(login2.UserName, False)
            End If

        Else
            Response.Write("Invalid UserID and Password")
        End If

イベントの処理を投稿するための新しいコントロールは、ログインコントロール認証イベントのデフォルトのイベント処理を上書きしている必要があります。それがうまくいくことを願っています..ありがとう。

于 2016-01-30T13:55:46.987 に答える