Owin,WebApi和UseCookieAuthentication

时间:2014-10-02 20:29:01

标签: asp.net-mvc authentication asp.net-web-api owin asp.net-apicontroller

我已经使用cookie身份验证在我的ASP.NET MVC应用程序中配置了OWIN,但是当我尝试访问具有Authorize属性的ApiController时,授权失败,我无法弄清楚原因。进入Authorize属性的IsAuthorized方法,我可以看到访问MVC控制器时不存在任何身份属性,因此它肯定会出现(至少对于authorize属性)用户未经过身份验证。 / p>

该应用程序配置如下:

public void ConfigureAuth(IAppBuilder app)
{
    app.CreatePerOwinContext(MyAuthContext.Create);
    app.CreatePerOwinContext<MyUserManager>(MyUserManager.Create);

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login"),
        Provider = new CookieAuthenticationProvider
        {
            OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<MyUserManager, MyUser>(
                validateInterval: TimeSpan.FromMinutes(30),
                regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
        }
    });

    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

        var httpConfig = new HttpConfiguration();
        WebApiConfig.Register(httpConfig);
        app.UseWebApi(httpConfig);
}

我是否必须为WebAPI使用不记名令牌,或者只是我缺少的东西。

0 个答案:

没有答案