如何拒絕直接訪問(通過輸入完整的url)到asp.net中的頁面,而不使用web.config中的角色。 我用:如何拒絕直接訪問頁面
if (Session.IsNewSession)
Response.Redirect("Default.aspx");
它是在第一時間一切的問題是確定和重定向工作,但如果我打開在同一瀏覽器的新選項卡,然後再次輸入URL失敗。 如何解決? 感謝名單
如何拒絕直接訪問(通過輸入完整的url)到asp.net中的頁面,而不使用web.config中的角色。 我用:如何拒絕直接訪問頁面
if (Session.IsNewSession)
Response.Redirect("Default.aspx");
它是在第一時間一切的問題是確定和重定向工作,但如果我打開在同一瀏覽器的新選項卡,然後再次輸入URL失敗。 如何解決? 感謝名單
試試這個:
Context.Items.Add("somevar","someval");
第2頁
if (Context.Items["somevar"] == null)
{
// the page is not redirected from Page 1
}
使用會話就可以解決這個問題。
構建一個HttpModule並在context_BeginRequest中獲取當前的URL。稍後有條件地重定向到默認頁面。
public class RedirectionModule : IHttpModule
{
void context_BeginRequest(object sender, EventArgs e)
{
//this user already already eligible to go inside page ?
if (Session["eligible-to-go-inside"] == null)
{
//new user
//check current request url is default.aspx
//if not forward to default page
}
}
}
在Default.aspx頁面,如果用戶完全填補需求去內頁(如登錄),然後設置
Session["eligible-to-go-inside"] = "yes";
我會用'Session'替代,因爲它會之間仍然存在要求。 Context.Items集合對於一個請求是有效的,所以如果OP需要一些登錄邏輯,那麼它不是一個好選擇。如果它是一個重定向頁面,那麼這是一個公平的解決方案。 – Patrick