使用表单身份验证的ASP.NET MVC应用程序

时间:2014-05-02 11:12:27

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

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

问题

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

您有以下要求:

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

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

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

enter image description here

enter image description here

enter image description here

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

参考:From DOCUMENT

5 个答案:

答案 0 :(得分:6)

我知道这句话的意思是错的。我在阅读DarthVaders your comment上的answer后得出结论。

例如:限制将此问题编辑到莱德的访问权限表示只有莱德应该能够编辑此问题。而不是相反。

答案 1 :(得分:2)

是A和C是正确的。

在GetBook中的

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

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

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

答案 2 :(得分:0)

如果您仔细阅读该问题,则必须允许

  1. 访问所有用户以访问方法“Getbook”
  2. 2.对于“Editbook”方法的“LibraryAdmin”,并一定限制其他用户。

    查看选项A和C,这些选项满足上述条件,因此答案为选项'A'和'C'

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

您有以下要求:

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

    C不正确,因为当要求限制访问时,名为LibraryAdmin的用户可以访问EditBook操作。

    问题是错误的,或者书中提供的答案是错误的。