【问题标题】:ASP.NET MVC application that uses forms authentication使用表单身份验证的 ASP.NET MVC 应用程序
【发布时间】:2014-06-19 01:21:54
【问题描述】:

我将参加 Microsoft 70-486 (MVC) 考试。所以我正在为此做准备。在 70-486 考试中遇到一个最重要的问题,但对他们给出的答案不满意。

问题

您正在开发一个使用表单身份验证的 ASP.NET MVC 应用程序。 用户数据库包含一个名为LibraryAdmin 的用户。

您有以下要求:

  • 您必须允许所有用户访问GetBook 方法。
  • 您必须将EditBook 方法的访问权限限制为名为@9​​87654328@ 的用户。

您需要实现控制器以满足要求。

您应该使用哪个代码段? (每个正确答案都代表一个完整的解决方案。请选择所有适用的选项。)

但是根据问题我必须限制对名为LibraryAdmin的用户访问EditBook方法选项A和C都将允许访问EditBook。所以我觉得答案是错误的。那么什么是正确答案呢?

参考:From DOCUMENT

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 c#-4.0


    【解决方案1】:

    我认为你把句子的意思弄错了。这是我在阅读 DarthVaders answer 上的 your comment 后得出的结论。

    例如:将编辑此问题的权限限制为 Ryder 意味着只有 Ryder 才能编辑此问题。而不是反过来。

    【讨论】:

    • 是的,伙计。你 ryt 我错误地理解了这个问题,非常感谢你节省了我的时间。
    【解决方案2】:

    是的 A 和 C 是正确的。

    在 GetBook 中对任何具有AllowAnon 属性的用户开放。然后[Authorize(Users="..")]。这是正确的。

    同样,在 C 代码中,通过直接访问用户身份并使用 LibraryAdmin 检查用户名来检查用户。这个也不错。

    本书的答案是正确的。 见:What does [Authorize(Users = "*")] mean in asp.net mvc

    【讨论】:

    • 你好。但是在选项 A 中,他们给出了 [Authorize(User="LibraryAdmin")] 它将允许 LibraryAdmin 访问该方法。但根据问题,我必须限制对他的访问。所以我怀疑。你能给我解释一下吗?
    【解决方案3】:

    如果你仔细阅读问题,你必须允许

    1. 访问所有用户以访问“Ge​​tbook”方法

    2.以及“Editbook”方法的“LibraryAdmin”,并通过各种方式限制其他用户。

    查看选项 A 和 C,这些选项满足上述条件,因此答案将是选项“A”和“C”

    【讨论】:

      【解决方案4】:

      两者都可以,但如果您只能选择一个选项,那么“A”是合适的答案,因为我们可以忽略选项“C”为什么会有 [Authorize] Data Annotation over类和函数。如果我们在类名上使用它,那么不需要写函数。

      【讨论】:

        【解决方案5】:

        您有以下要求:

        1. 您必须允许所有用户访问 GetBook 方法。
        2. 您必须将 EditBook 方法的访问权限限制为名为 LibraryAdmin 的用户。

        答案应该是A

        C 不正确,因为当要求限制访问时,名为 LibraryAdmin 的用户被授予对 EditBook 操作的访问权限。

        要么问题错了,要么书中提供的答案有误。

        【讨论】:

        • 但是在“A”中,LibraryAdmin 也有权使用 EditBook 方法,对吧?我认为“限制对 LibraryAdmin 的访问”的意思是他获得了权利,就像在 A 中一样。所以它是 A+C
        猜你喜欢
        • 1970-01-01
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多