设置授权有一些问题。
首先我得到了:

<authorization>
  <deny users="?" />
</authorization>

因此,我拒绝所有未知用户,然后允许他们查看这些页面:
<location path="Default.aspx">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

<location path="Public">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

现在解决问题..他们可以访问“公共(public)”页面和Default.aspx ..,但不能访问www.mydomain.com或www.mydomain.com/ ..因此,www.mydmain.com / Default.aspx可以正常工作。
那么如何使这些工作呢?

最佳答案

请记住,WebForms和MVC之间在 protected 资源方面存在根本差异。在WebForms中,您要保护的资源是页面本身,并且由于页面以众所周知的路径存在于磁盘上,因此您可以使用Web.config保护它们。但是,在MVC中,您要保护的资源实际上是 Controller 和操作,而不是单独的路径和页面。如果您尝试保护路径而不是 Controller ,则您的应用程序可能存在安全漏洞。

在MVC中,默认情况下,所有经过身份验证和来宾的用户均可访问所有 Controller +动作。为了保护 Controller 或动作的安全,已提供[Authorize]属性。有关更多信息,请参见 http://www.asp.net/learn/mvc/#MVC_Security

简而言之,对于您的应用程序来说,您希望将除默认 Controller 和带有[Authorize]属性的Public Controller 之外的每个 Controller 都赋予属性。

关于asp.net-mvc - IIS和MVC授权问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/570769/

10-09 00:48
查看更多