2011-08-31 66 views
2

进出口新的.NET和一直在寻找在这个问题上,但没有运气。我创建了一个登录页面,带有用户标识和密码。在我的webconfig中,我将下面的代码放在拒绝未经过身份验证的用户身上。帮助登录页面在vb.net

<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 
+2

不要依赖于cookie进行角色信息:他们只是可以由“感兴趣”的各方手动编辑的文本文件。 –

+0

@Joel,我同意。请问,如何在Session中存储角色信息? – DOK

+1

使用组合[ASP.NET成员资格提供](http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx)与[角色提供](http://msdn.microsoft.com/en -us/library/9ab2fxh0.aspx),你有一个全面的无忧包。 –

回答

3

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

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

C:\ WINDOWS \ Microsoft.NET \ Framework \ v4。 0.30319 \ aspnet_regsql.exe的

然后解决您的登录问题,您可以使用登录控制和使用Login.DestinationPageUrl属性将用户重定向到永远页你的愿望它记录后。

即使如果你不使用内置的提供者,这会给你一个更好的想法如何去实现角色进入你的网页。

1

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

1

而不是使用一个Cookie来存储信息(可被黑客攻击),你应该存储在ASPNetRoles表中的角色和准角色的用户在创建时。您可以使用以下代码检查角色:

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

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

+0

事件处理程序是单击按钮 – Will

1

你可以尝试这两种?

1)webconfig可能需要refrence到cookie的名称

<forms name="UserInfo" ... 

2)Webconfig也需要被告知谁允许

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