2012-01-17 82 views
2

我是ASP.NET和Web應用程序開發新手。我試圖實現的是,我正在Web服務器上存儲文件,並且應該將該文件的鏈接提供給用戶以供他們下載該文件。鏈接和「下載」過程很簡單,但我想讓鏈接通過登錄頁面更安全,然後用戶將輸入他/她的憑據,如果成功,則該文件將自動下載。首先登錄頁面才能下載文件

有誰知道我應該如何開始在那裏或什麼是這種方法/處理的名字對我來說,能夠開始我的研究。

謝謝。

回答

0

DONOT直接把鏈接到該文件。調用一個asp頁面,它將讀取和寫入文件內容

到它的輸出流。所有這些都在page_load(sender,event)上完成;但在讀取或寫入文件內容之前,只需檢查會話變量中是否有用戶名或密碼或用戶標識或其他內容。如果沒有這樣的話,重定向到login.aspx。

0

您可以使用ASP.NET forms authentication用戶和authetication過程後,你可以將用戶重定向到下載頁面進行驗證。

1

在下載頁面的Page_Load方法中,檢查Session["IsLoggedIn"]Session["LoggedInUserId"]其中這些會話變量設置在您的登錄頁面的BttnLogin_Click方法中。

的Login.aspx

<asp:TextBox ID="TxtBxUserName" runat="server"></asp:TextBox> 
<asp:Button ID="BttnLogin" runat="server" Text="Login" OnClick="BttnLogin_Click"/> 

Login.aspx.cs

protected void BttLogin_Click(object sender, EventArgs e) 
{ 
    // guarantee that a user with the given username(TxtBxUserName.Text) exist 
    // find the id of the user 
    Session["LoggedInUserId"] = userId; 
    //or just do 
    Session["IsLoggedIn"] = 1;// I use 0 and 1 for this kind of job  
} 

不要忘記你需要設置0Session["IsLoggedIn"]並設置-1(對於無效的ID)來Session["LoggedInUserId"]

現在,當你下載頁面加載時,只檢查這些會議variables.If登錄條件滿足,然後讓那個文件,如果不重定向到登錄頁面如下圖所示,用戶下載的一個;

if(Session["IsLoggedIn"].ToString() == "1") 
{ 
    // download 
} 
else 
{ 
    Response.Redirect("Login.aspx"); 
} 
+0

謝謝,它真的幫助我很多開始工作。 – ChiSen 2012-01-20 00:08:39

+0

@ChiSen祝你好運。 – Bastardo 2012-01-20 06:45:22

+0

您好,我正在通過javascript來管理文件的下載,問題是,這是實施此的適當方法嗎? javascript是這樣的:''code'function downloadFile(){var _ = queryString(「fn」); var f =「/ webapp/et /」+ s; (s.length> 1)window.open(f,「Download」); } }'code' – ChiSen 2012-02-06 00:22:39