我已经使用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使用不记名令牌,或者只是我缺少的东西。