在我的母版页中,菜单上有一个图标,它使用Jquery进行滑动,显示2个文本框(用户名,密码)供用户输入& 1提交按钮。我的想法是,提交后,我获取这两个字段的值,将其分配给我的MasterPage中的隐形登录控件,然后自动验证。 我可以获取值并分配但问题是我不知道如何触发Login Control中的Login按钮(如何强制它处理信息)? DataBind()函数不起作用
Master.master
<div id="login">
<p>
<asp:Login ID="Login2" runat="server" DestinationPageUrl="~/Index.aspx" LoginButtonStyle-CssClass="button_login"
TextBoxStyle-CssClass="input-name" Visible="false">
</asp:Login>
<asp:TextBox ID="inputUser" CssClass="input-name" Text="Username" runat="server"></asp:TextBox>
<asp:TextBox ID="inputPassword" CssClass="input-pass" Text="Password" runat="server"
TextMode="Password"></asp:TextBox>
<asp:Button ID="btn_login" CssClass="button_login" runat="server" OnClick="triggerLogin" />
</p>
</div>
Main.master.cs:
protected void triggerLogin(object sender, EventArgs e)
{
Login2.UserNameLabelText = inputUser.Text;
Login2.PasswordLabelText = inputPassword.Text;
Login2.DataBind();
}
实际上我已经有一个单独处理的登录页面,是否可以将信息传递给该页面进行处理?
答案 0 :(得分:0)
您可以在会话中添加用户名和密码。
类似的东西:
Session["user"] = inputUser.Text;
Session["pass"] = inputPassword.Text;
通过使用它,您可以访问页面中的用户名和密码。
var myusername = Session["user"].ToString();
var mypassword= Session["pass"].ToString();
在MSDN上查看:
ASP.NET State Management Overview
How to: Pass Values Between ASP.NET Web Pages
此致
答案 1 :(得分:0)
是的,我已经找到了解决方案,无需使用Login Control。我可以手动完成。
<asp:TextBox ID="inputUser" CssClass="input-name" Text="Username" runat="server"></asp:TextBox>
<asp:TextBox ID="inputPassword" CssClass="input-pass" Text="Password" runat="server"
TextMode="Password"></asp:TextBox>
<asp:Button ID="btn_login" CssClass="button_login" runat="server" OnClick="triggerLogin" />
代码隐藏:
protected void triggerLogin(object sender, EventArgs e)
{
TextBox txtbxInputUser = (TextBox)Page.Master.FindControl("inputUser");
TextBox txtbxInputPass = (TextBox)Page.Master.FindControl("inputPassword");
Label samplelabel1 = (Label)Page.Master.FindControl("sampleLabel1");
if (System.Web.Security.Membership.ValidateUser(txtbxInputUser.Text, txtbxInputPass.Text))
{
System.Web.Security.FormsAuthentication.SetAuthCookie(txtbxInputUser.Text, false);
}
else
{
Response.Redirect("Login.aspx?Attempt=wrong");
}
}