使用 DI 注入 ASP.NET 使用 Castle Windsor 的身份

Using DI to inject ASP.NET Identity using Castle Windsor

我想做的是在 ASP.NET.
中防止多次登录 我关注了这篇文章:Prevent Multiple Login in ASP.NET

之后我按照这篇文章:Changing PK data type将主键的数据类型从字符串(默认)更改为长。但是我还是无法阻止多次登录。

我发现它不工作的原因是因为我无法获得 UserManager 的实例

app.CreatePerOwinContext(() => DependencyResolver.Current.GetService<UserManager>());

上面的代码无效。我收到

的错误

Object reference not set to an instance of an object.

之后我找到这篇文章:AspNet Identity and IoC Container Registration and tried to understand the code but it's using unity. But there is a link above of that article that is using Castle Windsor: Castle Windsor 我不知道这是从哪里来的:

var container = DIContainer.GetConfiguredContainer();

更新
现在我意识到我无法获取对象实例的原因是因为我无法像其他 .cs 文件一样在 StartUp.cs 中注入 UserManager。 例如:

private readonly UserManager _userManager;

public StartUp(UserManager userManager)
{
      _userManager = userManager;
}

上面的代码给我这个错误:

No parameterless constructor defined for this object

请帮帮我!!!它困扰了我几个星期

此问题已修复。请转到下面的 link 查看它是如何修复的。

Solution

希望这也能帮助那些试图防止多次登录的人。
如果您有任何问题,请随时问我,我会尽力提供帮助。