背景标识是在数据库
我正在一个.net核心API项目带动一个社区驱动的歌词网站从编号不同。所以用户可以提交歌词&歌词。每位艺术家都有很多歌词(经典的一对多)。
对于身份验证&授权,我正在使用JWT令牌。
CODE
在我的歌词控制器,我对创造一个抒情的[HttpPost]
方法。下面的代码:一点不
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, DatabaseDataSeeder databaseDataSeeder)
{
loggerFactory.AddConsole();
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = _config["Tokens:Issuer"],
ValidAudience = _config["Tokens:Audience"],
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"])),
ValidateLifetime = true
}
});
app.UseMvc();
databaseDataSeeder.Seed().Wait();
}
的问题
通过var user = _userManager.GetUserAsync(HttpContext.User);
返回的用户有(int
型的)一种ID:
[Authorize]
[HttpPost("{artistSlug}/lyrics")]
public async Task<IActionResult> CreateLyric(string artistSlug, [FromBody] LyricCreateDto newLyricCreateDto)
{
if (newLyricCreateDto == null) return BadRequest();
if (!ModelState.IsValid) return BadRequest(ModelState);
var user = _userManager.GetUserAsync(HttpContext.User);
var lyricReadDto = await _lyricsService.AddNewLyric(user.Id.ToString(), artistSlug, newLyricCreateDto);
if (lyricReadDto == null) return NotFound();
return CreatedAtRoute("GetLyric", new {artistSlug, lyricSlug = lyricReadDto.Slug}, lyricReadDto);
}
在我Startup.cs
,我有以下匹配dbo.AspNetUsers
表中用户的ID。此外,表dbo.AspNetUsers
中的Id列的类型为Guid
。
我不知道这是怎么回事!下面是截图:
下面是在SQL Management Studio中对dbo.AspNetUsers
查询:
这究竟是为什么?
不错,你打了我10秒。 – Igor
傻我,谢谢@DavidG – Ciwan