IHttpContextAccessorまたはhttpContextAccessorを注入したコントローラからログインしたユーザーの詳細を取得できます。しかし、私のサービスでそれを試してみると、うまくいきません。私は私が行っていることはIUserServiceインターフェイスを作成され、これらのエラーにサービスのIDからログインしたユーザーの詳細を取得する
{System.Exception: Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you a...
を取得します。私はあまりにも私のIServiceCollectionでservices.AddSingleton<IUserService, UserService>();
を追加した
public class UserService : IUserService
{
private readonly IHttpContextAccessor _context;
private readonly UserManager<User> _userManager;
public UserService(IHttpContextAccessor context, UserManager<User> userManager)
{
_context = context;
_userManager = userManager;
}
public async Task<User> GetUser()
{
return await _userManager.FindByNameAsync(_context.HttpContext.User.Identity.Name);
}
}
:として次にその実装とそこGetUserメソッドを追加しました。
応答が返された後、要求ごとのサービスが既に破棄された後、GetUserメソッドを呼び出しているようです。 GetUserメソッドにはどこにアクセスしますか? – Win
私はIUserServiceを注入し、データを記録したログインしたユーザーの詳細を取得し、それを自分のDBに保存するNeaServiceクラスを持っています。 – user3127109
また、NeaServiceクラスもシングルトンですか? – DavidG