2016-11-27 105 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

相關問題