在哪里执行依赖于用户进行身份验证的控制器初始化

时间:2011-08-08 16:15:15

标签: asp.net-mvc-3

我发现在用户的身份验证票证到期时我们的应用程序中存在错误。

控制器使用Authorize属性进行修饰,但我们在控制器的构造函数中对变量进行了一些初始化,这些变量依赖于正在进行身份验证的用户。

那么,如果用户未经过身份验证(并因此将重定向到登录页面),那么最好将这个初始化代码移动到哪里以便不执行? OnAuthorization?

1 个答案:

答案 0 :(得分:1)

  

那么将初始化代码移动到的最佳位置是哪里   如果用户未经过身份验证,则不会执行

您可以编写自定义AuthorizeAttribute并在AuthorizeCore方法中执行它(在调用基本方法并确保它返回true之后)。

另一种可能性是将自定义模型绑定器写入某个模型,该模型将初始化它,然后您的控制器操作可以将此模型作为参数。