2013-04-09 226 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; 

讓我們知道這是否得到你所需要的。