2016-11-27 106 views
0

我在Visual Studio中创建一个新的ASP.NET MVC项目和模板创建了下面的一个IdentityConfig.cs文件类型或命名空间名称“ApplicationUser”找不到

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.Linq; 
using System.Security.Claims; 
using System.Threading.Tasks; 
using System.Web; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 
using Microsoft.AspNet.Identity.Owin; 
using Microsoft.Owin; 
using Microsoft.Owin.Security; 
using LrcVault.Models; 

namespace LrcVault 
{ 
    public class EmailService : IIdentityMessageService 
    { 
     public Task SendAsync(IdentityMessage message) 
     { 
      // Plug in your email service here to send an email. 
      return Task.FromResult(0); 
     } 
    } 

    public class SmsService : IIdentityMessageService 
    { 
     public Task SendAsync(IdentityMessage message) 
     { 
      // Plug in your SMS service here to send a text message. 
      return Task.FromResult(0); 
     } 
    } 

    // Configure the application user manager used in this application. UserManager is defined in ASP.NET Identity and is used by the application. 
    public class ApplicationUserManager : UserManager<ApplicationUser> 
    { 
     public ApplicationUserManager(IUserStore<ApplicationUser> store) 
      : base(store) 
     { 
     } 

     public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
     { 
      var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>())); 
      // Configure validation logic for usernames 
      manager.UserValidator = new UserValidator<ApplicationUser>(manager) 
      { 
       AllowOnlyAlphanumericUserNames = false, 
       RequireUniqueEmail = true 
      }; 

      // Configure validation logic for passwords 
      manager.PasswordValidator = new PasswordValidator 
      { 
       RequiredLength = 6, 
       RequireNonLetterOrDigit = true, 
       RequireDigit = true, 
       RequireLowercase = true, 
       RequireUppercase = true, 
      }; 

      // Configure user lockout defaults 
      manager.UserLockoutEnabledByDefault = true; 
      manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5); 
      manager.MaxFailedAccessAttemptsBeforeLockout = 5; 

      // Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user 
      // You can write your own provider and plug it in here. 
      manager.RegisterTwoFactorProvider("Phone Code", new PhoneNumberTokenProvider<ApplicationUser> 
      { 
       MessageFormat = "Your security code is {0}" 
      }); 
      manager.RegisterTwoFactorProvider("Email Code", new EmailTokenProvider<ApplicationUser> 
      { 
       Subject = "Security Code", 
       BodyFormat = "Your security code is {0}" 
      }); 
      manager.EmailService = new EmailService(); 
      manager.SmsService = new SmsService(); 
      var dataProtectionProvider = options.DataProtectionProvider; 
      if (dataProtectionProvider != null) 
      { 
       manager.UserTokenProvider = 
        new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity")); 
      } 
      return manager; 
     } 
    } 

    // Configure the application sign-in manager which is used in this application. 
    public class ApplicationSignInManager : SignInManager<ApplicationUser, string> 
    { 
     public ApplicationSignInManager(ApplicationUserManager userManager, IAuthenticationManager authenticationManager) 
      : base(userManager, authenticationManager) 
     { 
     } 

     public override Task<ClaimsIdentity> CreateUserIdentityAsync(ApplicationUser user) 
     { 
      return user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager); 
     } 

     public static ApplicationSignInManager Create(IdentityFactoryOptions<ApplicationSignInManager> options, IOwinContext context) 
     { 
      return new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(), context.Authentication); 
     } 
    } 
} 

,我有没有触及它,当我尝试建立我的项目,我立刻得到错误

类型或命名空间名称“ApplicationUser”找不到(是 你缺少using指令或程序集引用?)

任何想法为什么会发生这种情况?

回答

1

为了解决问题,创建一个名为ApplicationUser的类,该类从IdentityUser派生。

public class ApplicationUser : IdentityUser 
{ 

} 
+0

我会很惊讶,如果它并不存在...... – DavidG

+0

你也可以这样做,它有作为项目模板的一部分,它位于型号/ IdentityModels.cs。 – Sajeetharan

0

在创建项目中有一个选项选择验证(当您选择模板右侧更改身份验证按钮),我认为你已经使用默认的是个人用户帐户,然后你会得到自动创建带有登录,注册和其他帐户相关页面的Asp.net身份验证框架。

此链接将有助于您Introduction to ASP.NET Identity

相关问题