1

ボタンをクリックしてコンテンツページからマスターページのラベルのテキストを変更する必要がありますが、ここにしわがあります...フォームログインリダイレクト中です。これを達成する方法はありますか?これが私のコードです。すべてが正しく設定されています。問題は、ラベルをデフォルトのテキスト値に戻すリダイレクトだと思います。

ログインコード

    protected void Login_Click(object sender, EventArgs e)
    {


         var result = Utilities.AuthenticateUser(txtUserName.Text, txtPassword.Text);


                if (result.Authenticated)
                {
                    this.User = result;



                    DDC master = (DDC)Page.Master;
                    master.lblLogin_Text = result.FirstName + ' ' + result.LastName;

                    FormsAuthentication.RedirectFromLoginPage(result.Username, false);
                    return;
                }
            }


    }

マスターページ

public partial class DDC : System.Web.UI.MasterPage
{

    public string lblLogin_Text
    {
        get { return lblLogin.Text; }
        set { lblLogin.Text = value; }

    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
4

1 に答える 1

1

a を使用しSessionて、認証結果を追跡します。サンプル コードにはクラス名がないため、そのAuthenticationResult.

ログイン ページで認証を行い、MasterPage読み取り可能なセッション変数を設定します。

protected void Login_Click(object sender, EventArgs e)
{
    var result = Utilities.AuthenticateUser(txtUserName.Text, txtPassword.Text);
    if (result.Authenticated)
    {
        Session["AuthenticationResult"] = result;
        FormsAuthentication.RedirectFromLoginPage(result.Username, false);
    }
}

MasterPageで、変数をPage_Loadチェックしてテキストを設定します。SessionLabel

public partial class DDC : System.Web.UI.MasterPage
{
    public string lblLogin_Text
    {
        get { return lblLogin.Text; }
        set { lblLogin.Text = value; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var result = (Session["AuthenticationResult"] as AuthenticationResult);
            if (result != null && result.Authenticated)
            {
                this.User = result;
                lblLogin_Text = String.Form("{1} {2}, result.FirstName, result.LastName);
            }
            else
            {
                lblLogin_Text = String.Empty;
            }
        }
    }
}
于 2013-08-28T13:38:30.787 に答える