FormsAuthentication Microst.AspNet.Identity.Owin.SignInManager.to之间的区别

ASP.NET MVC的默认项目模板附带了一个名为Microst.AspNet.Identity.Owin.SignInManager的类。 此类用于validation用户

我不明白为什么我应该使用SignInManager而不是在ASP.NET MVC项目中使用简单的FormsAuthentication。 SignInManager有什么好处?

它是否根据FormsAuthentication以不同的方式进行身份validation? 它比FormsAuthentication更安全吗? 除了身份validation之外,我还可以使用SignInManager做什么?

SignInManager和下面的代码之间有什么关系? SignInManager是否使用下面设置的设置?

app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); 

MembershipProvider在ASP.NET 2中附带FormsAuthentication

ASP.NET身份随ASP.NET 5中的SignInManager一起提供。

ASP.NET Identity是MembershipProvider的新版本。 它提供了比传统MembershipProvider更多的function。

例如,

  • 双因素身份validation
  • 基于令牌的身份validation
  • 与MembershipProvider相比,易于添加的自定义属性
  • 从OWIN上下文中获取UserManager的实例

如果您不需要所有这些function,则可以使用可以在没有MembershipProvider的情况下使用的FormsAuthentication

Forms Authentication是ASP.NET的身份validation框架的旧版本。 反对使用Forms身份validation的一个非常可靠的原因是它已被弃用 。

最新版本的Visual Studio中ASP.NET MVC的默认模板具有ASP.NET Identity Framework的实现,因此使用SignInManager 。 我相信使用ASP.NET身份的一个主要优点是它可以作为OWIN中间件托管,这意味着它不依赖于System.Web ,因此不依赖于您的Web应用程序。