Чтобы использовать мое приложение, пользователь должен пройти процесс входа в систему, чтобы получить доступ к различным частям приложения. Поэтому, независимо от входа в приложение (независимо от того, начинаются ли они с / home или / whatElse), я бы хотел, чтобы пользователь был авторизован и получил свои разрешения.
Их разрешения поступают из функции SignUpSignIn () в контроллере учетной записи.
Когда пользователь пытается получить доступ к /thingElse, у меня есть атрибут [Authorize], который отправляет его на вход в Azure B2C. Но после «Авторизации» функция SignUpSignIn () никогда не срабатывает, и его разрешения не назначаются. на их сессию. Так что в каком бы месте они ни оказались, не работает должным образом (
и вероятные ошибки).
Как я могу заставить пользователя запускаться через SignUpSignIn () после авторизации?
Вот как я авторизую
namespace TaskWebApp.Controllers
{
[Authorize] //<---
public class SomethingElseController : Controller
{
// GET: SomethingElse
public ActionResult Index()
{
return View();
}
}
}
Так пользователь получает свои разрешения.
public class AccountController : Controller
{
public async Task SignUpSignIn()
{
if (!Request.IsAuthenticated)
{ ///}
if (Request.IsAuthenticated)
{ //apply permissions to user's session }
}
}
Я ожидаю, что пользователь перейдет на /thingelse и будет перенаправлен на страницу входа в Azure B2C. Как только они нажимают «войти», чтобы запустить SignUpSignIn () из контроллера учетных записей, и их разрешения назначаются для их сеанса.