gpt4 book ai didi

asp.net-mvc - 默认 AccountController 示例何时更改?

转载 作者:行者123 更新时间:2023-12-01 02:46:16 25 4
gpt4 key购买 nike

我在 asp.net 论坛上问过这个问题,但似乎没有人知道我在说什么。我不知道为什么会这样,但我想我会在这里问一下,看看是否有人有一些见识。

早在 MVC2 发布时,它包含一个示例 AccountController,它使用可测试的接口(interface)和服务包装了内置的 Membership 和 FormsAuthentication 类。我读了很多关于这方面的内容,这被认为是一件好事,因为 Membership 和 FormsAuthentication 类不容易测试。

最近,我使用最新的(SP1、MVC3、工具更新等)环境生成了一个新的示例项目,我发现 AccountController 现在要简单得多。 Interfaces、MembershipService 和 FormsAuthenticationServices 已经一去不复返了。该示例现在直接调用 Membership 和 FormsAuthentication 类。

我想知道是否有人知道这是什么时候发生的,为什么?可测试的接口(interface)是否不再被认为是正确的?有技术上的理由来改变这个吗?

我能想到的最好的结果是,这是作为在打开的 url 上传递返回 url 时删除可能漏洞的更改的一部分发生的。

有什么见解吗?

最佳答案

新模型类似于 EF 的代码优先方法,其中 AccountModel是 POCO 类。在新 API 中不再有抽象,而是直接调用静态方法,例如 FormsAuthentication.SetAuthCookie使此代码难以进行单元测试。我不建议将您的真实世界应用程序代码建立在此基础上。

而且,是的,他们已经修复了 LogOn 中的一个漏洞。在重定向之前未验证返回 url 是否为相对 url 的方法。

我个人建议您使用抽象来削弱 Controller 逻辑与其依赖项之间的耦合。这将使代码更容易进行单元测试。

对我来说,在不使用 View 模型的情况下将所有这些域模型传递给 View 是完全反模式的,我从来没有打扰过它们。我只是创建一个空项目并按照我的方式做事。我的意思是在默认项目中他们甚至使用 ViewBag看在基督的份上!

关于asp.net-mvc - 默认 AccountController 示例何时更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6809838/

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