gpt4 book ai didi

asp.net-mvc - Unity MVC 注入(inject)当前用户

转载 作者:行者123 更新时间:2023-12-01 22:29:42 25 4
gpt4 key购买 nike

我正在使用基本的 Unity MVC Nuget Bootstrapper。我想将当前登录的用户注入(inject)到我定义的服务中

_container.RegisterType<IDoSomethingService, DoSomethingService>();

这样 DoSomethingService 就能获取 ICurrentUser 对象或某种形式的解析器。

我试图避免调用这样的电话

DoSomethingService.DoSomething(currentUserUsingService,...);

或者在所有 MVC Controller 的构造函数中也避免设置:

DoSomethingService.CurrentUSer = User.Identity.Name;

最佳答案

在我的项目中我使用下一个:

public interface ICurrentUserService
{
int? GetId();
}

我注册下一个实现:

public class CurrentUserService: ICurrentUserService
{
public int? GetId()
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
return null;
return int.Parse(HttpContext.Current.User.Identity.Name);//When auth - id stored in cookie
}
}

_container.RegisterType<ICurrentUserService, CurrentUserService>();

并使我的服务依赖于 ICurrentUserService (通过使用 ctor 参数)或将 userId 传递到 Controller 中我的服务的方法中。

关于asp.net-mvc - Unity MVC 注入(inject)当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9508098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com