public override void OnException(ExceptionContext context) { MsalUiRequiredException msalUiRequiredException = context.Exception as MsalUiRequiredException; if (msalUiRequiredException == null) { msalUiRequiredException = context.Exception?.InnerException as MsalUiRequiredException; } if (msalUiRequiredException != null && AuthorizeForScopesAttribute.CanBeSolvedByReSignInOfUser(msalUiRequiredException)) { context.Result = new JsonResult("ErrorMessage: A page reload is required in order to refresh (or gain additional) consent for Ms Graph on behalf of the user."); context.HttpContext.Response.StatusCode = (int)HttpCodes.ReloadRequired; } base.OnException(context); }
public void AuthorizeForScopesAttribute_FindMsalUiRequiredExceptionIfAny_Tests() { MsalUiRequiredException msalUiRequiredException = new MsalUiRequiredException("code", "message"); MsalUiRequiredException result = AuthorizeForScopesAttribute.FindMsalUiRequiredExceptionIfAny(msalUiRequiredException); Assert.Equal(result, msalUiRequiredException); Exception ex = new Exception("message", msalUiRequiredException); result = AuthorizeForScopesAttribute.FindMsalUiRequiredExceptionIfAny(ex); Assert.Equal(result, msalUiRequiredException); Exception ex2 = new Exception("message", ex); result = AuthorizeForScopesAttribute.FindMsalUiRequiredExceptionIfAny(ex2); Assert.Equal(result, msalUiRequiredException); }