public async Task <IActionResult> PermissionGrant([FromForm] PermissionGrantModel model) { Guid sagaId; var context = _dataProtector.Unprotect(model.ProtectedOAuthContext); if (!Guid.TryParse(context, out sagaId)) { return(BadRequest()); } var message = new PermissionGrantMessage(sagaId) { GrantedScopeNames = model.GrantedScopeNames ?? new List <string>() }; var result = await _sagaBus.SendAsync <PermissionGrantMessage, OAuth20Result>(message); switch (result.State) { case OAuth20State.AuthorizationCodeGenerated: return(AuthorizationCodeRedirect(result)); case OAuth20State.Finished: return(ImplictRedirect(result)); case OAuth20State.UserDenied: return(View("UserDenied")); default: return(BadRequest()); } }
public async override Task <OAuth20Result> HandleAsync(PermissionGrantMessage message) { //check granted scopes if (!TypLoadScopeFromNames(message.GrantedScopeNames, out _grantedScopes)) { GoToState(OAuth20State.UserDenied); return(CurrentStateResult()); } //next step return(await GrantPermissionAsync()); }
public async Task<IActionResult> PermissionGrant([FromForm]PermissionGrantModel model) { Guid sagaId; var context = _dataProtector.Unprotect(model.ProtectedOAuthContext); if (!Guid.TryParse(context, out sagaId)) { return BadRequest(); } var message = new PermissionGrantMessage(sagaId) { GrantedScopeNames = model.GrantedScopeNames ?? new List<string>() }; var result = await _sagaBus.SendAsync<PermissionGrantMessage, OAuth20Result>(message); switch (result.State) { case OAuth20State.AuthorizationCodeGenerated: return AuthorizationCodeRedirect(result); case OAuth20State.Finished: return ImplictRedirect(result); case OAuth20State.UserDenied: return View("UserDenied"); default: return BadRequest(); } }