[英]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.