【发布时间】:2016-04-12 11:05:57
【问题描述】:
我正在使用各种资源来尝试使用 MS Access 为 AngularJS 应用程序实现身份系统。 我创建了实现我需要的身份接口的类,但我被困在创建帐户控制器的阶段(这将是用于注册、登录等的 API)。
UserStore 类实现了IUserStore 并具有CreateAsync 方法:
public Task CreateAsync(TUser user)
{
if (user == null)
{
throw new ArgumentNullException("user");
}
var result = userTable.Insert(user);
return Task.FromResult(result);
}
AccountController 实现了ApiController 并具有Register 方法:
[AllowAnonymous]
[Route("register")]
public async Task<IHttpActionResult> Register(IdentityUser user)
{
var result = await _userStore.CreateAsync(user);
if (result == 0)
{
return InternalServerError();
}
return Ok();
}
userTable.Insert(user) 返回一个int 指示数据库表中受影响的行数。 var result = await _userStore.CreateAsync(user); 行抛出一个错误,说它实际上返回了void,因此void 不能分配给var(或其他任何东西)。
我很难理解如何编写Register 方法和CreateAsync 方法,以便它们能够协同工作。
顺便说一句,我想我应该放弃整个async 的东西,只让CreateAsync 和Register 按原样返回int 值,但我不能这样做,因为UserStore 实现了`IUserStore' .
【问题讨论】:
-
this question 中有一个例子可能会有所帮助
标签: c# async-await task asp.net-web-api2 identity