0

私はコードを持っています

protected void Application_Error(object sender, EventArgs e)
    {
        HttpContext ctx = HttpContext.Current;
        Exception ex = ctx.Server.GetLastError();
        ctx.Response.Clear();

        var viewResult = new ViewResult();

        if (ex.GetType() != typeof(SecurityException))
        {
            RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext;
            IController controller = new ModuleController();
            var context = new ControllerContext(rc, (ControllerBase)controller);                

            var httpException = ex as HttpException;
            if (httpException != null)
            {
                switch (httpException.GetHttpCode())
                {
                    case 404:
                        viewResult.ViewName = "Error404";
                        Response.StatusCode = 404;
                        break;

                    case 500:
                        viewResult.ViewName = "Error500";
                        Response.StatusCode = 500;
                        break;

                    default:
                        viewResult.ViewName = "Error";
                        Response.StatusCode = httpException.GetHttpCode();
                        break;
                }
            }
            else
            {
                viewResult.ViewName = "Error";
            }

            viewResult.ViewData.Model = new HandleErrorInfo(ex, context.RouteData.GetRequiredString("controller"), context.RouteData.GetRequiredString("action"));
            viewResult.ExecuteResult(context);
            ctx.Server.ClearError();
        }
        else
        {
            var context = new ControllerContext { RouteData = new RouteData() };
            context.RouteData.Values.Add("controller", "Security");
            context.Controller = new SecurityController();
            HttpCookie cookie = this.mebershipService.GetCookie();
            cookie.Expires = DateTime.Now.AddDays(-1);
            this.Context.Response.Cookies.Add(cookie);
            viewResult.ViewName = "HackedDetect";
            Response.StatusCode = 403;
            viewResult.ExecuteResult(context);
            ctx.Server.ClearError();
        }
    }

SecurityExceptionを処理する場合、およびコードviewResult.ExecuteResult(コンテキスト)でシステムに関連しない呼び出しコントローラー(円を描いて歩かないようにするため)。NotImplementedExceptionであるしかし、どのメソッドまたは操作が定義されていないかは明確ではありませんでした。

それが間違いからクリップボードにコピーされたものです

System.NotImplementedExceptionがユーザーコードによって処理されない
HResult=-2147467263
メッセージ=メソッドまたは操作が実装されていません。
Source = System.Web
StackTrace:
in System.Web.HttpContextBase.get_Response()
in System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
in SGN.Web.MvcApplication.Application_Error(Object sender、EventArgs e)in C:\ Project \ SGN \ SGN.Web \ Global.asax.cs: System.Web.HttpApplication.RaiseOnError()
のSystem.EventHandler.Invoke(オブジェクト送信者、EventArgs e)の142行 目InnerException:

アップデート

このエラーを取得するために私が行うことを書きます

カスタムIdentityクラスを作成し、初期化されると、Cookieを検証します。Cookieが検証されない場合、SecurityExceptionを作成します

4

0 に答える 0