回答
您只需要測試該URL是本地URL爲正確的網址進行重定向前的安全錯誤「URL重定向不受信任的網站」可能會將用戶重定向到其他網站(如釣魚網站)。當你的代碼目前維持,這個網址:一旦你登錄
通過下面添加此條件檢查
http://www.yoursite.com/account/login?returnUrl=www.myfakesite.com
將您重定向到www.myfakesite.com
,你能保證你永遠不重定向當前的應用程序之外
if(!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)){
//check for empty return url and that it is a local url
return Redirect(returnUrl);
}
else{
//wherever you want people to default going to if they
//log in without a return url or one that is not a local url.
return RedirectToAction("action", "controller");
}
EDIT
的URL輔助組件位於的System.Web。 MVC。但是,在一個控制器中,UrlHelper已經安裝並準備就緒 - 意味着控制器會自動「實例化UrlHelper」。爲了在控制器外部使用此設備,您需要訪問當前的RequestContext
以設置UrlHelper。
var helper = new UrlHelper(HttpContext.Current.Request.RequestContext);
return helper.IsLocalUrl("testUrl");
注意 - 我不知道的安全掃描軟件是如何確定,這可能是一個「URL重定向信任的網站」 - 但它可能只是發出一個糟糕的網址,看是否應用程序重定向到它。這應該糾正,但沒有關於安全掃描如何工作的更多信息,我不能保證。
我無法將Url.IsLocalUrl(returnUrl)添加到我的代碼中。所需的namesapce是「System.web.mvc」對嗎? – 2014-11-24 12:01:04
@AnkitBansal - UrlHelper在System.Web.Mvc中,但是,在控制器之外,您需要實例化UrlHelper。請參閱以上關於如何做到這一點的編輯。 – Tommy 2014-11-24 14:55:55
在我的控制器中添加以下行給出以下錯誤'System.Web.HttpContextBase'不包含'Current'的定義,並且沒有接受'System.Web.HttpContextBase'類型的第一個參數的擴展方法'Current'可能是發現(你是否缺少using指令或程序集引用?System.Web.mvc已被添加爲引用。 – 2014-12-04 14:09:05
- 1. 子站點重定向URL重寫
- 2. Adal無限重定向+ Edge +可信站點
- 3. 網站URL重定向
- 4. 將不正確的URL重定向到HTTPS站點的方法?
- 5. url重寫/重定向iis7重定向到手機網站
- 6. 301網站URL的重定向
- 7. Azure網站的URL重定向
- 8. ASP.NET友好的URL - 重定向'站點的根目錄'默認'
- 9. 在Nginx中將https站點重定向到http url
- 10. 重定向站點url http到代碼編碼器中的https
- 11. 如何在pligg中將站點URL重定向到www
- 12. 列表重定向目標(URL)IIS站點
- 13. URL不重定向在CodeIgniter
- 14. 笨不會重定向URL
- 15. 重定向不改變URL
- 16. plupload不重定向到url
- 17. URL重定向不工作
- 18. .htaccess https 301重定向+移動站點重定向
- 19. Django跨站點反向URL
- 20. URL重定向
- 21. URL重定向
- 22. URL重定向
- 23. URL重定向
- 24. Url重定向
- 25. URL重定向
- 26. 站點內301重定向不同的重定向的一個子集
- 27. eddystone url不能與url重定向
- 28. 包含點的URL重定向
- 29. 重定向節點請求內的URL
- 30. 將錨點重定向到外部URL
你想在你的網站的某個地方重定向....... returnans會將本地? – 2014-11-21 09:39:12