Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Mvc标识Longin ClaimsPrincipal值始终为空_Asp.net Mvc_C# 4.0_Asp.net Identity_Principal - Fatal编程技术网

Asp.net mvc Mvc标识Longin ClaimsPrincipal值始终为空

Asp.net mvc Mvc标识Longin ClaimsPrincipal值始终为空,asp.net-mvc,c#-4.0,asp.net-identity,principal,Asp.net Mvc,C# 4.0,Asp.net Identity,Principal,这是我的登录控制器 public class AccountController : BaseController { [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginViewModel model, string returnUrl) {

这是我的登录控制器

public class AccountController : BaseController
{
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Login(LoginViewModel model, string returnUrl)
    {                                         
      var identity = new ClaimsIdentity(new[] 
      {
         new Claim(ClaimTypes.Name, "Huang"),
         new Claim(ClaimTypes.NameIdentifier, user.Vaild.ToString()),
         new Claim(ClaimTypes.Email,"xxx@gmail.com"),
         new Claim(ClaimTypes.MobilePhone,"123456"), 
      },DefaultAuthenticationTypes.ApplicationCookie);


  IdentityTool.Authentication(AuthenticationManager,identity,rememberMe:true);

     // userEmail and userPhone  always null and I got null exception
        var userEmail = CurrentUser.Email;
        var userPhone = CurrentUser.MobilePhone;  

    return View(model);
   }
}

public class BaseController : Controller
{
    public AppUser CurrentUser
    {
        get { return new AppUser(this.User as System.Security.Claims.ClaimsPrincipal);}

    }
}
标识配置

public class IdentityTool
{
 public static void Authentication(IAuthenticationManagerauthenticationManager, ClaimsIdentity identity, bool rememberMe)
     {
        if (rememberMe)
        {
            authenticationManager.SignIn(new AuthenticationProperties()
            {
                IsPersistent = true,
                ExpiresUtc = DateTimeOffset.UtcNow.AddDays(14)
            }, identity);
        }
        else
        {
            authenticationManager.SignIn(new AuthenticationProperties()
            {
                IsPersistent = false
            }, identity);
        }
    }
}

//Custom property
public class AppUser : ClaimsPrincipal
{        
    public AppUser(ClaimsPrincipal principal) : base(principal)
    {
    }
    public string Email
    {
        get
        {
            return this.FindFirst(ClaimTypes.Email).Value;
        }
    }

    public string MobilePhone
    {
        get
        {
            return this.FindFirst(ClaimTypes.MobilePhone).Value;
        }
    }
 }
这是我的创业公司

public void ConfigureAuth(IAppBuilder app)
{
    AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;                     
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType =DefaultAuthenticationTypes.ApplicationCookie, 
        LoginPath = new PathString("/Account/Login"),
        Provider = new CookieAuthenticationProvider
        {

            OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                validateInterval: TimeSpan.FromMinutes(30),
                regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
        }
    });            
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
public void ConfigureAuth(IAppBuilder应用程序)
{
AntiForgeryConfig.UniqueClaimTypeIdentifier=ClaimTypes.NameIdentifier;
app.UseCookieAuthentication(新的CookieAuthenticationOptions
{
AuthenticationType=DefaultAuthenticationTypes.ApplicationOkie,
LoginPath=新路径字符串(“/Account/Login”),
Provider=新CookieAuthenticationProvider
{

OnValidateIdentity=SecurityStampValidator.OnValidateIdentity

是否已在web.config中移动表单身份验证?您在authenticationManager中有什么?我没有修改web.config。我需要删除web.config中的一些代码?将配置身份验证替换为--public void ConfigureAuth(IAppBuilder应用程序){AntiForgeryConfig.UniqueClaimTypeIdentifier=ClaimTypes.NameIdentifier;app.UseCookieAuthentication(新CookieAuthenticationOptions{AuthenticationType=DefaultAuthenticationTypes.ApplicationCookie,LoginPath=new PathString(“/Account/Login”), });}