学员:徐豫锋提问时间:2008-10-16 10:33:06
if (Membership.ValidateUser(txtUserName.Text, txtPwd.Text)) //验证用户名和密码,bool
{
if(Roles.IsUserInRole(txtUserName.Text,"Admin"))
//验证是否为管理员,boll
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);
//将用户定向到默认的URL
else
Server.Transfer("~/default.aspx");
}
else
lblInfo.Text = "用户验证失败";
请说明一下,.ValidateUser和.IsUserInRole是如何工作的,他们是如何把txtUserName.Text身份告诉服务器的, FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);是如何知道txtUserName.Text的身份?
回答人:金旭亮回答时间:2008-10-16 10:48:24
用户的相关信息默认情况下保存于ASPNETDB.mdf文件中,放在网站的App_Data文件夹下。
Membership.ValidateUser()就是从这个数据库中提取信息并验证用户的。此函数在底层调用ADO.NET访问数据库,用户密码采用单向哈希函数加密,然后再与数据库中的密码比较。
.IsUserInRole()也是类似的。
FormsAuthentication.RedirectFromLoginPage()方法在验证用户凭据有效之后,返回最先请求的URL(因为某些网页可能要求登录后才能访问,因此,不登录就访问它会要求登录,登录之后自然要“返回”原网页)。此方法的第2个bool类型的参数指明是否将用户登录凭据保存到Cookie中。
更详细的说明请查询MSDN。
学员对该答案的评价 谢谢