我是MVC的新手,这个问题可能是一个新手问题。我在网上看到了关于Authorize
属性的示例。在这些示例中,作者控制器代码看起来像这样
[Authorize]
[InitializeSimpleMembership]
Public class someController: Controller {...}
但是如果你检查AccountController,你会发现
[Authorize]
[InitializeSimpleMembership]
Public class AccountController: Controller {...}
所以我的问题是为什么作者不是简单地使用[Authorize]
而没有初始化someController
中的简单成员资格,因为如果它到达帐户控制器,它将以任何方式初始化。
答案 0 :(得分:2)
当您使用InitializeSimpleMembership属性时,这意味着您可能不会在任何地方使用您的应用程序中的成员资格,因此如果您不使用成员资格,您可能不希望浪费资源,因此该属性初始化应用程序的简单成员资格在运行时,如果您确定应用程序将使用简单成员资格,您只需将此行代码添加到global.asax WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
中的应用程序启动,然后在每个地方获取InitializeSimpleMembership属性,也许作者认为成员资格没有太多的用例,所以决定把属性放到位,也许应用程序在调用AccountController的任何动作之前使用SomeController