2009-10-15 33 views
0

我正在一個需要限制對註冊用戶訪問頁面和文檔(.pdf,.doc等)的網站上工作。我們正在使用ASP.NET Membership類來執行此操作。要求用戶使用ASP.NET登錄以查看文檔

但是,我無法正常工作,如果有人在登錄到網站之前點擊文檔鏈接,我該如何操作。目前,它們將被帶到登錄頁面,並且在成功登錄後,該文檔將在新窗口中被提供,但是當它們關閉文檔時,它們仍將坐在登錄屏幕上。可以做些什麼來將用戶發送到默認頁面並加載文檔?

回答

1

首先製作您自己的登錄頁面;這很簡單,因爲ASP.NET Membership提供了執行所有重要操作的方法。然後,在調用RedirectFromLoginPage方法之前,查看ReturnUrl查詢參數值,如果它是文檔,請將用戶發送到默認頁面,而不是將文檔的URL作爲查詢字符串參數或會話狀態。最後,在默認頁面中,檢測是否傳遞了文檔URL,如果是,則在頁面加載時對文檔執行客戶端重定向(使用JavaScript或META刷新)。

+0

我最終實現了這個解決方案。 – 2009-10-19 18:32:01

+0

很高興聽到! – 2009-10-19 22:55:33

1

如果ReturnURL包含指向實際文檔的鏈接,您可以設置「登錄按鈕」的OnClientclick屬性來調用JavaScript函數以在新窗口中打開該文件,然後有響應.Redirect()從登錄屏幕中取出該人員?

+0

這對我而言並不適用,因爲在登錄完成之前JavaScript已經解僱了。 – 2009-10-19 18:31:20

0

新增formsAuthentication。 FormsAuthentication.RedirectFromLoginPage(txtUserid.Text.Trim(),false)

+0

糾正我,如果我錯了,但這會調出文檔(.pdf,.doc等),但是當文檔窗口關閉時,用戶仍將在登錄頁面上。 – 2009-10-15 20:25:37

0

正如HenryGao所說的,但記住要將標籤放入您的web配置中,並將deny users="?"僅允許通過身份驗證的用戶。

<configuration> 
    <system.web> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
</configuration>