Thinktecture IdentityServer 3 - ASP.NET Identity示例无法正常工作

时间:2015-08-20 19:31:38

标签: asp.net-mvc asp.net-identity thinktecture-ident-server

我正在运行https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/AspNetIdentity中的IdentityServer AspNetIdentity示例。将app.config中的数据库设置为(LocalDb)本身就可以了。

我还在MVC 5 + Web API 2项目上完成了文件/新项目。我在Azure SQL中创建了一个SQL数据库,将新项目指向该数据库,并在那里创建了一个新用户,这意味着ASP.NET Identity已经运行了数据库创建脚本,并且我有通常的表那里。

所以,分开来说,他们很好。

然后我进入了AspNetIdentity示例,并将其指向刚刚填充的新创建的SQL数据库。当我运行样品时......它会爆炸。具体来说,在第188行的AspNetIdentityUserService.cs中,它调用UserManager。

    protected async virtual Task<TUser> FindUserAsync(string username)
    {
        return await userManager.FindByNameAsync(username);
    }

例外:

SelfHost.vshost.exe Error: 0 : [Thinktecture.IdentityServer.Core.Configuration.Hosting.ErrorPageFilterAttribute]: 8/20/2015 7:26:40 PM +00:00 -- Exception accessing: /core/login
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'FirstName'. Invalid column name 'LastName'.
   at System.Data.SqlClient.SqlCommand.<>c__DisplayClass16.<ExecuteDbDataReaderAsync>b__17(Task`1 result)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.<ExecuteStoreCommandsAsync>d__c.MoveNext()
--- End of inner exception stack trace ---
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.<ExecuteStoreCommandsAsync>d__c.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
etc.

我误解了什么吗? AspNetIdentity插件是否能够从正常格式化的ASP.NET身份数据库中提取?

1 个答案:

答案 0 :(得分:1)

该示例使用的是基本ASP.NET标识IdentityUser的扩展版本。请参阅User entity

这具有FirstNameLastName的附加属性,根据您的例外,您的数据库没有。