2017-08-25 13 views
0

私はカスタム認証属性を持っています。カスタム認証属性から401コードを返す方法は?

これがWebAPIに実装されている場合、メソッドにはHttpActionContextオブジェクトが渡されます。

actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized); 

しかし、MVCに実装された場合、渡されたオブジェクトは、私は同じように承認拒絶反応を返さないことができることを意味し、応答が含まれていますが、それは読み取り専用ですActionExecutingContextオブジェクトです。

context.HttpContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized); 

を、それが読み取り専用だとこれも動作しません:読み取り専用だとして

これは動作しません

HttpContext.Current.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized); 

は、どのように私はMVCで書き込み可能な応答を得ることができますこのように設定できますか?

+0

は、これはかなり良いリソースです:https://dusted.codes/demystifying-aspnet-mvc-5-error-pages-and-error-logging –

+0

カスタムのActionFilter代わりAuthorizationFilterのやっているような音。 –

答えて

1

は、ない応答結果を設定してみてください。

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    // Authorization code here - if not authorized: 

    filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.Unauthorized); 
} 
+0

これは私のために働いた - ありがとう – CompanyDroneFromSector7G

関連する問題