C# WebAPI身份验证

C# WebAPI身份验证,c#,asp.net,sql-server,asp.net-web-api,C#,Asp.net,Sql Server,Asp.net Web Api,我对构建web api还很陌生,所以如果这个问题中有什么愚蠢的地方,请原谅我。我的主要目标是在客户端和现有数据库之间建立一个WebAPI接口。目前,我已经设法使用C和ASP.net构建了一些可以与SQL数据库交互的东西。我目前面临的问题是,我正在努力进行身份验证。我花了大约3/4天的时间来研究这个话题,试图理解它,但不幸的是,到目前为止我一直没有成功 目前,我认为我目前面临的问题是,每当我尝试使用API注册帐户时。下面是ApplicationController中的register func 这

我对构建web api还很陌生,所以如果这个问题中有什么愚蠢的地方,请原谅我。我的主要目标是在客户端和现有数据库之间建立一个WebAPI接口。目前,我已经设法使用C和ASP.net构建了一些可以与SQL数据库交互的东西。我目前面临的问题是,我正在努力进行身份验证。我花了大约3/4天的时间来研究这个话题,试图理解它,但不幸的是,到目前为止我一直没有成功

目前,我认为我目前面临的问题是,每当我尝试使用API注册帐户时。下面是ApplicationController中的register func

这是我通过VisualStudio2015创建项目时自动生成的

// POST api/Account/Register
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

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

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

    if (!result.Succeeded)
    {
        return GetErrorResult(result);
    }

    return Ok();
}
我认为这是我需要做的一切,让它工作,我尝试和测试它,仍然不工作。然后在Sql SMS中也使用Sql Server探查器运行跟踪,以查看发送了什么Sql

exec sp_executesql N'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@Table',N'@Table nvarchar(11)',@Table=N'AspNetUsers'
是我在多个层面上感到困惑的东西。首先,当我试图注册一个新用户时,为什么它会发送select语句,其次,为什么它会试图从一个不存在的表中进行选择?没有AspNetUser,但有一个Aspnet\u用户表

我假设在这条路上的某个地方,我犯了严重的错误,而且对这一切都是新手。我肯定我犯了一些非常愚蠢的错误,但我花了好几天的时间来寻找信息和帮助,我所能找到的只是一些关于MVC或Webforms的模糊信息,它们似乎只是说,当你运行应用程序

下面是SQL SMS中对象资源管理器的屏幕截图,显示了现有数据库及其表
我很笨。感谢Sam Farajpour指出我的愚蠢,没有意识到结果还有其他属性,我所犯的错误与一些我不知道的密码要求有关,现在已经解决了我的问题

我从中学到了什么?每件事都要检查一次,两次,然后三次


我怀疑其他人会有和我一样的问题,但如果有人有,请检查结果对象并查看其属性。有一个字符串数组,其中包含错误信息(如果有)。你可以很容易地从中找到答案。

身份有自己的身份,它不同于会员身份。IdentityResult结果具有错误属性。放置断点以查看错误内容并提交到您的答案。在观察错误属性之前恢复默认连接字符串。我认为你的新连接字符串也是新问题的根源。@SamFarajpourGhamari谢谢你的帮助。我真不敢相信我竟然不想检查它是否还有其他属性
exec sp_executesql N'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@Table',N'@Table nvarchar(11)',@Table=N'AspNetUsers'