2013-04-09 276 views
0

地狱大家....我是新来的asp.net ..我真的想尽我所能实现foll .. 我已经在asp中创建了一个登录控制.net.For验证我写功能,验证用户在会话获取用户名和重定向到另一个page.I,因为我需要的用户名对未来的目的访问从登录控制inasp.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)如果用户没有通过验证重定向他到登录页面...

请帮我....任何帮助将非常感激

+0

你可以发布你的登录控制代码吗? – 99823 2013-04-10 00:38:35

+0

下面的答案是否为您解决了这个问题?如果是这样,请将问题标记为已回答。谢谢。 – McCee 2013-04-12 01:17:31

回答

0

你可以简单地检查用户在每个页面上的认证出你想隐藏 - 在这些页面的Page_Load()方法。您不需要将值存储在Session中,并且您不一定需要使用方法(除非您正在进行身份验证时执行其他一些处理)。

在任何你的安全页面,在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; 

让我们知道这是否得到你所需要的。