簡體   English   中英

asp.net表單身份驗證重定向問題

[英]asp.net forms authentication redirect problem

在IIS中關閉默認文檔功能,這是情況......

我項目的起始頁面是A.aspx。 我運行該項目,果然,A.aspx出現在瀏覽器的url中。 盡管如此,A.aspx發現沒有用戶登錄並重定向到Login.aspx。

A.aspx:

    if (Session["UserStuff"] == null)
        Response.Redirect("~/Account/Login.aspx"); 

當用戶登錄時,login.aspx顯示BUT,代碼:

FormsAuthentication.RedirectFromLoginPage(txtUserName.Text,true);

總是重定向到“Default.aspx”而不是“A.aspx”

我檢查了FormsAuthentication.GetRedirectUrl,果然它返回“Default.aspx”

我難倒了????

web.config您可以使用defaultUrl屬性設置默認頁面

<authentication mode="Forms">
    <forms 
       loginUrl="login.aspx" 
       defaultUrl="a.aspx"
       protection="All"  
       timeout="30" 
    />
</authentication>

如果您正在使用FormsAuthentication,則應在web.config中定義您的設置。 聽起來你在DefaultUrl的web.config中有一個默認設置。 您不應該需要會話重定向。 FormsAuthentication應該為您執行此操作。 如果您沒有找到會話並強制使用SignOut(),則不會有任何損害,但FormsAuthentication應執行此重定向。

根據我的理解,當用戶被重定向到您的登錄屏幕時,表單身份驗證機制會將用戶最初訪問的頁面的URL添加到他們用戶嘗試訪問的登錄URL。 例如,如果您有一個登錄頁面:http; // bob / login.aspx,並且用戶試圖訪問http; // bob / showmethemoney.aspx,那么它們將被重定向到http; // bob / login。 ASPX?RETURNURL = showmethemoney.aspx。 因此,如果您在用戶登錄后使用ReturnUrl重定向用戶,則用戶將始終返回到他們最初嘗試訪問的資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM