将身份验证从ASP.NET MVC迁移到ASP.NET Web API

时间:2016-01-08 14:27:57

标签: asp.net asp.net-mvc asp.net-mvc-4 asp.net-web-api

我有一个ASP.NET MVC Web应用程序,我想使用angular注册和登录。当用户想要登录/注册时,我在我的WebAPI上调用登录和注册方法。问题是我不知道如何将我在帐户控制器中的MVC登录和注册转移到我的WebAPI。

我当前的Register方法如下所示:

var target = document.getElementsByTagName('canvas');

我的主要问题是以下几行:

// POST api/RegisterApi
public async Task<HttpResponseMessage> Post([FromBody]RegisterViewModel model)
{
   if (!ModelState.IsValid)
   {
       return await this.BadRequest(this.ModelState).ExecuteAsync(new CancellationToken());
   }

   var user = new ApplicationUser
   {
       Email = model.Email,
       UserName = model.Email
   };

   IdentityResult result = await this.UserManager.CreateAsync(user, model.Password);

   if (!result.Succeeded)
   {
       return await this.GetErrorResult(result).ExecuteAsync(new CancellationToken());
   }

    // Auto login after register (successful user registration should return access_token)
    var loginResult = this.LoginUser(new LoginViewModel()
   {
       Email = model.Email,
       Password = model.Password
   }); 

    return await loginResult;
}

不知怎的,我无法调用CreateAsync-Method,我真的不知道为什么。

我收到以下错误:

  

任务'不包含'CreateAsync'的定义   没有扩展方法'CreateAsync'接受第一个参数   输入'任务

你们能否正确地提出这方面的意见?到目前为止,我所看到的一切似乎都太复杂了。

编辑:好的错误已经解决,但现在出现了新问题。 CreateAsync方法不创建用户并返回到我的AngularJs中的错误函数。你们有什么建议为什么CreateAsync会失败吗?

0 个答案:

没有答案