通过自动填充凭据自动化ASP.NET登录表单

时间:2014-05-12 16:07:46

标签: c# asp.net

我有一个现有的Login.aspx页面,当用户手动填充其登录凭据并提交它们时,该页面有效。

我想为“TRIAL”目的创建此表单的另一个版本,自动使用值填充用户名和密码文本框字段。我想隐藏这些文本框控件。因此,用户只需点击登录按钮,它就会使用自动填充的值,并将用户登录。

如何转换现有代码才能执行此操作?

以下是包含用户名和密码的两个文本框控件的代码:

<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName"
Text="Username">
</asp:Label>

<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
<asp:CustomValidator ID="UserNameRequired" ValidateEmptyText="True"
OnServerValidate="ValidateUserName" ClientValidationFunction=""
runat="server" ControlToValidate="UserName"
ErrorMessage="<%$ resources: UserNameRequired %>" 
ToolTip="<%$ resources: UserNameRequired %>" ValidationGroup="sLogin"
Text="<%$ resources: asterisk %>">
</asp:CustomValidator>

<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password"
Text="<%$ resources: Password %>" Style="margin-top: 5px;"></asp:Label>

<asp:TextBox ID="Password" runat="server" CssClass="editCtl"
TextMode="Password" AutoComplete="off"></asp:TextBox>

我意识到我可以直接将值直接添加到页面中,如下所示:

<asp:TextBox ID="UserName" runat="server" Text="user1" style="display:none;"></asp:TextBox>

<asp:TextBox ID="Password" runat="server" CssClass="editCtl" AutoComplete="off" Text="password1" style="display:none;"></asp:TextBox>

但是,我想真正的问题是如何以更安全的方式调用这些值?

2 个答案:

答案 0 :(得分:0)

如果这个cookie存在,那么存储数据,编码到cookie中,并填充输入值怎么样?

  

C#

Response.Cookies["userName"].Value = "patrick";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);
  

VB

Response.Cookies("userName").Value = "patrick"
Response.Cookies("userName").Expires = DateTime.Now.AddDays(1)

答案 1 :(得分:0)

从您的OP我做出以下假设:您有两个登录页面,一个用于普通用户,一个用于试用用户。这两个.ASPX页面都在页面后面共享相同的代码,以便共享逻辑。这导致试用登录页面需要提供用户名和密码,而无需用户输入,并且您不希望用户容易看到这些用户名和密码。

您可以使用第二个提交按钮进行试用登录。在普通页面上,试用提交按钮将被隐藏,在试用页面上隐藏用户名,密码和正常提交。

重构页面后面的代码,以便登录逻辑位于单独的方法中。对于正常登录页面,从UI控件获取用户名和密码并调用该方法。在试用按钮中,单击使用硬编码值或更好的配置值,然后调用方法。