我正在尝试使用代码优先将ASP NET Identity添加到现有的mvc5项目中。 我研究了生成VS的新项目,并且我在ASP.NET身份上撰写了许多文章。 在大多数情况下,我将代码从模板复制到我的项目中。我刚刚在IdentityDbContext上替换了DBContext,并且几乎没有更改。表由EF迁移生成,并通过UserManager和RoleManager通过Seed方法填充,因此,我认为,代码的某些部分按预期工作。
但是,当我将[Authorize]添加到Controller(而不是WebApi,只是Controller),并尝试从控制器获取页面时,我遇到了一个问题 - 服务器返回401.0错误,尽管选项设置为{{1} }。
这是我的代码Startup.Auth.cs
LoginPath = new PathString("/Account/Login")
这是我的Startup.cs
namespace App
{
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
app.CreatePerOwinContext(CwDb.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity =
SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
}
}
}
我只需要使用登录/通行证和cookie进行简单的身份验证,我不需要通过社交网络等进行身份验证。
我哪里错了?如何在vs生成的模板中获得重定向?
答案 0 :(得分:0)
我找到了解决方案。我刚刚将Microsoft.Owin.Host.SystemWeb
添加到项目中并且工作正常。不幸的是,我见过的任何文章都没有关于这个库的必要性的信息。