アクションフィルタ属性を例外は、「HTTPヘッダが送信された後にリダイレクトすることができません」例外。あなたがこれを行うことはできませんリダイレクト
リダイレクト
答えて
HTTPヘッダーが
を送ってきたので、あなたは(Response.IsRequestBeingRedirected
プロパティを確認できた後
リダイレクトが試みられたとき、MSDN Documentationによると、
Response.Redirect("url")
はHttpExeptionをスローしますブール)を呼び出す前に。のように:あなたがリダイレクトする必要はありません
// Causes headers to be sent to the client (Http "Location" response header) Response.Redirect("http://www.stackoverflow.com"); if (!Response.IsRequestBeingRedirected) // Will not be called Response.Redirect("URL");
私はこれを試してみましたが、それは私の機能に応じて私はこれを使用することができますエラーを私に与える@Francois –
あなたはエラーを提供することはできますか? –
ログインにリダイレクトされません。 "HTTPヘッダーが送信された後にリダイレクトできません" –
。 ActionExecutingContext
の結果を設定して、行きたい場所に誘導します。
public class CustomSecurityAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (tokenContainer.ApiToken != null) return;
//this will re-route you action
filterContext.Result = new ViewResult
{
ViewName = "Login", //whatever view you are routing to
ViewData = new ViewDataDictionary<HandleErrorInfo>(model), //you can leave it blank if your view doesn't need data
TempData = filterContext.Controller.TempData
};
filterContext.ExceptionHandled = true;
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.StatusCode = 403;
filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
}
}
- 1. 多くのリダイレクトregexリダイレクト
- 2. モバイルURLリダイレクトとデスクトップURLリダイレクト
- 3. .htaccess https 301リダイレクト+モバイルサイトのリダイレクト
- 4. 別のリダイレクト後リダイレクトCakePHP3
- 5. リダイレクトされないリダイレクト先
- 6. リダイレクト
- 7. リダイレクト
- 8. リダイレクト
- 9. リダイレクト
- 10. リダイレクト
- 11. リダイレクト
- 12. リダイレクト
- 13. リダイレクト
- 14. リダイレクト
- 15. リダイレクト
- 16. コードリダイタはリダイレクトでHTTPSをリダイレクトしないでリダイレクトします
- 17. MVC 5 - リダイレクトされないリダイレクト
- 18. .htaccessリダイレクトhttp> httpsと301リダイレクト
- 19. ミドルウェアの最初のリダイレクト後リダイレクト.netコア
- 20. 301リダイレクトでリダイレクトが多すぎる
- 21. リダイレクトURLに基づいてリダイレクト
- 22. 301 htaccessファイルのリダイレクトまたはURLリダイレクト
- 23. PHPリダイレクト
- 24. リダイレクトは
- 25. .htaccessリダイレクト
- 26. URLリダイレクト
- 27. htaccessリダイレクト
- 28. リダイレクトURL
- 29. リダイレクトblog.mydomain.com
- 30. リダイレクトPOSTDATA
あなたは[OnActionExecuting](https://msdn.microsoft.com/en-us/library/system.web.http.filters.actionfilterattributeオーバーライドする必要があります:
あなたはこのような何かをしたいです。 onactionexecuting(v = 118).aspx) – mmushtaq
これを実装する方法は? @mmushtaq –
メソッド名を 'OnResultExecuted'と' OnResultExecuting'に変更するだけです。このメソッドはpublic override void OnActionExecuting(HttpActionContext actionContext){....} 'のようにします。 – mmushtaq