1

地狱每个人..我是asp.net的新手..我真的在尽我最大的努力来实现foll..我在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)如果用户未通过身份验证,则将他重定向到登录页面...

请帮助我....任何帮助将不胜感激

4

1 回答 1

0

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

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

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

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

<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;

让我们知道这是否能满足您的需求。

于 2013-04-10T02:28:59.110 回答