Eu não consigo obter um exemplo de login de cookie muito básico para trabalhar com MVC5 e OWIN

Eu tenho tentado obter meus pés molhados com asp.net MVC 5 para 2013, mas até agora eu não consegui até mesmo a autenticação mais básica funcionando corretamente.

Eu tenho lido por aí nos últimos dias e finalmente me deparei comhttp://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/) que parecia dar o exemplo simples mais básico que pude encontrar. Então eu tentei isso, mas ainda não parece realmente criar uma sessão para o usuário.

Aqui está minha configuração de cookie

public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/FooBar")
        });
    }

Aqui está o meu login personalizado básico.

public class LoginController : ApiController
    {
        private IAuthenticationManager Authentication
        {
            get { return Request.GetOwinContext().Authentication; }
        }

        // POST api/login
        public void Post([FromBody]LoginInfo email)
        {
            var fooBar = Authentication.User;
            var claims = new List<Claim>
            {
                new Claim(ClaimTypes.Name, "name")
                ,new Claim(ClaimTypes.Email, "[email protected]")
                ,new Claim(ClaimTypes.Role, "Foo")
            };
            var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);

            Authentication.SignIn(new AuthenticationProperties() { IsPersistent = true }, identity);
        }
    }

Se eu acertar a API de login duas vezes, eu esperaria a segunda vez que a variável fooBar fosse configurada para um usuário que estivesse marcado como autenticado, mas quando eu verificar, ele apenas diz que não está autenticado, e não tem qualquer uma das alegações que eu teria esperado.

Eu também tentei criar um serviço básico apenas para verificar se ele foi autenticado no caso de eu ter entendido mal como funcionava, mas isso também falha. Se eu tentar ir até lá, diz que não estou autenticado, não me redireciona como achei que seria.

public class TestController : ApiController
    {
        [Authorize(Roles = "Foo")]
        public int Get()
        {
            return 1;
        }
    }

Tenho certeza de que faltam alguns básicos, mas até agora não importa o que eu mexa e, independentemente dos vários guias e conselhos que vi online, nada foi capaz de fazer com que até mesmo esse cenário simples funcionasse. Alguma idéia do que estou fazendo errado?

questionAnswers(2)

yourAnswerToTheQuestion