帮助vb.net中的登录页面

时间:2011-08-31 19:04:12

标签: asp.net vb.net

我是.NET新手,一直在搜索这个问题,但没有运气。我创建了一个登录页面,其中包含用户ID和密码。在我的webconfig中,我将以下代码放入以拒绝未经过身份验证的用户。

 <authentication mode="Forms">
  <forms loginUrl="Login.aspx" timeout="10" protection="All" />
 </authentication>

 <authorization>
   <deny users="?"></deny>      
 </authorization>

我想要完成的是,当用户输入正确的信息时,我想将关于用户的信息存储在cookie中,例如,如果有管理员,经理,用户等...这里是用户单击“提交”按钮时发生的代码。问题是用户输入正确信息后页面不会重定向到页面。非常感谢任何帮助。

   If txtPassword.Text.ToLower = "test" Then

        'Create a cookie
        Dim cookie As New HttpCookie("UserInfo")

        'Cookie variables
        cookie("User") = txtUser.Text
        cookie("UserGroup") = "Admin"

        'Add Cookies to current web responses
        Response.Cookies.Add(cookie)

        Response.Redirect("login_successful.aspx")
        'FormsAuthentication.RedirectToLoginPage("login_successful.aspx")
    Else
        lblResult.Text = "Incorrect Password"
    End If

4 个答案:

答案 0 :(得分:3)

我不建议使用cookie来存储角色信息。使用其中一个内置提供程序来完成此任务。例如,试试这个。

打开Visual Studio或Visual Studio Express并创建一个新的“ASP.NET Web应用程序”。您会注意到它包含一个“帐户”目录,其中包含如何使用内置提供程序的示例。您必须使用正确的表,角色,sprocs等设置数据库以使用内置提供程序,但这很容易。如果您安装了.NET 4.0程序,该程序将数据库设置为使用内置的提供程序,它名为aspnet_regsql.exe,它通常位于此处:

  

C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ aspnet_regsql.exe的

然后,为了解决您的登录问题,您可以使用Login控件并使用Login.DestinationPageUrl属性将用户重定向到您登录后所需的页面。

即使您不使用内置提供程序,这也可以让您更好地了解如何在网页中实施角色。

答案 1 :(得分:1)

我想在重定向之前,你必须先调用FormsAuthentication.SetAuthCookie方法来设置身份验证cookie。 是的,请考虑关于joel coehoorn关于保存信息的cookie的评论。

答案 2 :(得分:1)

您应该将角色存储在ASPNetRoles表中,并在创建用户时将角色与用户相关联,而不是使用cookie来存储该信息(可以被黑客入侵)。您可以使用以下代码检查角色:

If (Roles.IsUserInRole("rolename")) Then
   'Do something useful
End If

至于重定向,它包含在哪个事件处理程序中?

答案 3 :(得分:1)

你能试试这两个吗?

1)网络配置可能需要引用cookie名称

<forms name="UserInfo" ...

2)Web Config也可能需要告知谁允许

<authorzation>
    <allow user="Admin" />
    <deny...