Я новичок в ядре ASP.NET, и я изучаю библиотеку удостоверений ядра ASP.NET, чтобы увидеть, как работает код за экраном.
Я уже знаю, что класс UserManager отвечает за созданиепользователь, вызвав метод: CreateAsync (пользователь TUser);.
Однако, когда я проверяю класс UserManager в Visual Studio, выбирая класс и нажимая F12 (Перейти к определению), я не вижу кода реализации вметод CreateAsync.
Это выглядит так:
//
// Summary:
// Creates the specified user in the backing store with no password, as an asynchronous
// operation.
//
// Parameters:
// user:
// The user to create.
//
// Returns:
// The System.Threading.Tasks.Task that represents the asynchronous operation, containing
// the Microsoft.AspNetCore.Identity.IdentityResult of the operation.
[DebuggerStepThrough]
public virtual Task<IdentityResult> CreateAsync(TUser user);
Это начало файла:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Security.Claims;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace Microsoft.AspNetCore.Identity
{
//
// Summary:
// Provides the APIs for managing user in a persistence store.
//
// Type parameters:
// TUser:
// The type encapsulating a user.
public class UserManager<TUser> : IDisposable where TUser : class
Когда я иду на GitHub, я вижу, что CreateAsync вUserManager.cs действительно имеет такой код реализации:
/// <summary>
/// Creates the specified <paramref name="user"/> in the backing store with given password,
/// as an asynchronous operation.
/// </summary>
/// <param name="user">The user to create.</param>
/// <param name="password">The password for the user to hash and store.</param>
/// <returns>
/// The <see cref="Task"/> that represents the asynchronous operation, containing the <see cref="IdentityResult"/>
/// of the operation.
/// </returns>
public virtual async Task<IdentityResult> CreateAsync(TUser user, string password)
{
ThrowIfDisposed();
var passwordStore = GetPasswordStore();
if (user == null)
{
throw new ArgumentNullException(nameof(user));
}
if (password == null)
{
throw new ArgumentNullException(nameof(password));
}
var result = await UpdatePasswordHash(passwordStore, user, password);
if (!result.Succeeded)
{
return result;
}
return await CreateAsync(user);
}
Очевидно, я смотрю на два разных файла.
Может кто-нибудь сказать мне, где я могу найти реализацию метода CreateAsync вVisual Studio?