访问登录名和登录状态从登录控件在asp.net

本文关键字:登录 asp net 控件 状态 访问 | 更新日期: 2023-09-27 18:08:15

见鬼吧....我是asp.net的新手,我真的在尽我最大的努力去实现它。对于身份验证,我正在编写验证用户在会话中获取用户名并重定向到另一个页面的功能。我正在手动编写这个函数,因为我需要用户名用于将来的目的

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {
        Login Login1 = ((Login)LoginView1.FindControl("Login1"));
        string userName = Login1.UserName.ToString();
        Session["uname"] = userName;
        Response.Redirect("~/Project/Process/Process.aspx");
    }

现在我想要的是当我重定向用户到Process.aspx…1)我想从登录控件和状态....显示用户名如果用户登录了....然后显示页面内容和注销链接,注销用户....2)如果用户没有被认证,重定向到登录页面…

请帮帮我....

访问登录名和登录状态从登录控件在asp.net

您可以简单地检查用户是否在您想要隐藏的每个页面上进行了身份验证—在这些页面的Page_Load()方法中。您不需要将值存储在Session中,也不一定需要Login1_Authenticate方法(除非您在身份验证时执行一些其他处理)。

在任何安全页面上,在Page_Load()方法中:

if (User.Identity.IsAuthenticated == false)
    Response.Redirect("~/YourLoginPage.aspx");

此外,要在成功登录后将用户重定向到特定页面,可以使用Login控件的DestinationPageUrl属性,如下所示:

<asp:Login ID="Login1" runat="server" DestinationPageUrl="~/Project/Process/Process.aspx" />

显示当前登录(或未登录)用户的用户名和状态:

<asp:LoginView id="loginView" runat="server" >
    <LoggedInTemplate>
        <asp:LoginName id="loginName" runat="server" />&nbsp;
    </LoggedInTemplate>
</asp:LoginView>
<asp:LoginStatus ID="loginStatus" runat="server" LogoutText="Logout" LogoutAction="Redirect" LogoutPageUrl="~/YourHomePage.aspx" LoginText="Login" />

要在将来的任何时间从任何页面获取当前登录的用户名,使用:

string userName = User.Identity.Name;