Как изменить контроллер перенаправления после входа в ADFS ASP.NET MVC? - PullRequest
0 голосов
/ 19 сентября 2019

Я выполняю федеративную аутентификацию в приложении ASP.NET MVC, для которого я использую следующий код конфигурации

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // Para obtener más información sobre cómo configurar la aplicación, visite https://go.microsoft.com/fwlink/?LinkID=316888
        ConfigureAuth(app);
    }

    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCookieAuthentication(
        new CookieAuthenticationOptions
        {
            AuthenticationType = CookieAuthenticationDefaults.AuthenticationType
        });
        app.UseWsFederationAuthentication(
        new WsFederationAuthenticationOptions
        {
            MetadataAddress = "https://example.com/FederationMetadata/2007-06/FederationMetadata.xml",
            Wtrealm = "https://example.com/appId",
        });

        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
    }
}

AccountController

public class AccountController : Controller
{
    public void SignIn()
    {
        if (!Request.IsAuthenticated)
        {
            HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, 
                WsFederationAuthenticationDefaults.AuthenticationType);
        }
    }

    public void SignOut()
    {
        string callbackUrl = Url.Action("SignOutCallback", "Account", routeValues: null, protocol: Request.Url.Scheme);

        HttpContext.GetOwinContext().Authentication.SignOut(
            new AuthenticationProperties { RedirectUri = callbackUrl },
            WsFederationAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
    }

    public ActionResult SignOutCallback()
    {
        if (Request.IsAuthenticated)
        {
            // Redirigir a la página principal si el usuario está autenticado.
            return RedirectToAction("Index", "Inicio");
        }

        return View();
    }
}

Вход выполнен успешно, но,я хочу сделать, чтобы в момент входа в систему перейти на другой контроллер, например: Home / Main.

Проблема в том, что я не понимаю, как проект mvc работает с федеративной аутентификацией,как он узнает, к какому действию или контроллеру он должен приступить после входа в систему, поскольку его конфигурация не выполнена.

Как изменить или настроить контроллер для перехода после успешного входа в систему?

...