1

我是 MVC 的新手,这个问题可能是一个新手问题。我Authorize在网上看到过关于属性的例子。在这些示例中,作者控制器代码如下所示

[Authorize]
[InitializeSimpleMembership]
Public class someController: Controller {...}

但是如果你检查 AccountController 你会发现

[Authorize]
[InitializeSimpleMembership]
Public class AccountController: Controller {...}

所以我的问题是为什么作者不简单地使用[Authorize]而不初始化 Simple 成员资格,someController因为如果它到达 Account Controller,它将以任何方式被初始化。

4

1 回答 1

2

当您使用 InitializeSimpleMembership 属性时,这意味着您可能不会在应用程序的任何地方都使用会员资格,因此如果您不使用会员资格,您可能不想为此浪费资源,因此该属性会在运行时为应用程序初始化简单会员资格,如果您确定应用程序将使用简单的会员资格,您可以将这行代码添加到应用程序开始在 global.asax 中WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);,然后在每个地方获取 InitializeSimpleMembership 属性,也许作者认为会员资格没有太多用途情况下,因此决定将属性放在适当的位置,并且可能应用程序在调用 AccountController 的任何操作之前使用 SomeController

于 2013-08-24T16:07:19.507 回答