背景標識是在數據庫
我正在一個.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