MVC:在控制器中保留对当前用户的引用的最佳方法是什么?

时间:2010-05-19 19:42:52

标签: .net model-view-controller membership

我是一个应用程序,其中所有内容都绑定到当前连接的用户。到目前为止,几乎所有的操作都调用了我的UsersService.GetUser(guid)方法,该方法带来了用户及其所有相关数据。它确实工作正常,但在每个动作中都说了这个电话真的很困扰我。

在考虑之后我决定使用一个声明类似

的基本控制器
protected UserProfile CurrentUser
    {
        get { return UsersService.GetUser((Guid)Membership.GetUser().ProviderUserKey); }
    }

然后我的控制器继承自基本控制器并使用CurrentUser而不是在每个操作中调用服务。不过,感觉我只是把地毯下面的污垢藏起来了。

所以,请你,如果你有更好的方式分享。

1 个答案:

答案 0 :(得分:1)

对我而言,你所做的事对我来说是有道理的。 使用Base控制器是一种很好的做法。 可以扩展的一件事是将用户放在会话对象中,这样您就不需要在每次请求时都按下db。