LoginStatus控件无法使用数据库进行基本验证的日志记录
本文关键字:验证 记录 日志 控件 数据库 LoginStatus | 更新日期: 2023-09-27 18:21:34
我在login.aspx页面中有一个登录控件,它通过使用存储过程(下面给出的Validation()方法)在数据库中检查用户名密码来验证用户
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Validation(Login1.UserName, Login1.Password))
{
Session["Logged"] = "Yes";
Session["User"] = "Admin";
Session["msg"] = "";
e.Authenticated = true;
Response.Redirect("/umkgp/admin/gallerymanager.aspx");
// "Successfully Logged In";
}
else
{
e.Authenticated = false;
}
}
现在,当我使用LoginStatus控件时,它不会将显示文本从登录更改为注销。我知道LoginStatus控件基于IsAuthenticated属性。在我的情况下,我想IsAuthenticated没有设置为true。如何使其发挥作用。这是登录状态控制的代码
<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
<AnonymousTemplate>
[ <a href="/umkgp/admin/admin.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
</AnonymousTemplate>
<LoggedInTemplate>
Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="/umkgp/home.aspx" OnLoggingOut="Logout_Click"/> ]
</LoggedInTemplate>
</asp:LoginView>
(n.b.我没有使用成员资格或角色)。请帮助我…
替换此行
Response.Redirect("/umkgp/admin/gallerymanager.aspx");
有了这个
FormsAuthentication.RedirectFromLoginPage(Login1.UserName,false);
//this will tell the asp.net who logged in and it will redirect to the requested page or the default page
更新:如果您想设置默认位置,请打开您的web.config文件并找到身份验证标签
并以这种方式修改
<authentication mode="Forms">
<forms defaultUrl="~/mydefaultpage.aspx"/>
</authentication>
来自MSDN
默认情况下,登录控件与ASP.NET成员身份和ASP.NET表单身份验证有助于自动化的用户身份验证网站。
您可以获得如何在msdn登录控制中实现登录控制的概述
正如您所说,您没有使用asp.net成员资格,因此系统不知道您已登录并有内部记录。
为了解决这个问题,你应该创建一个自定义的会员资格提供商,它会包装你的验证代码,然后所有其他asp.net会员资格集成控件都会自动与你的会员服务提供商一起工作:
- http://www.google.co.uk/search?q=asp.net+custom+membershipprovider