【问题标题】:"Access is Denied" accessing a subpage in ASP.net (hosting with IIS)“访问被拒绝”访问 ASP.net 中的子页面(使用 IIS 托管)
【发布时间】:2011-08-03 10:46:26
【问题描述】:

我在尝试转到索引以外的任何页面时遇到当前错误:

“/”应用程序中的服务器错误。
访问被拒绝。
说明:访问处理此请求所需的资源时出错。服务器可能未配置为访问所请求的 URL。
错误消息 401.2.:未经授权:由于服务器配置,登录失败。根据您提供的凭据和 Web 服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。请与 Web 服务器的管理员联系以获得更多帮助。
版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1

我的网站没有登录系统。只有一个小数据库。

有人有什么想法吗?

谢谢!

【问题讨论】:

    标签: asp.net security iis


    【解决方案1】:

    您的主机及其控制面板是否支持启用/禁用匿名访问? 听起来好像“匿名”被禁用了。

    http://forums.iis.net/t/1152085.aspx

    【讨论】:

    • 根据IIS,匿名访问是开启的:)
    【解决方案2】:

    如果您可以访问根页面但不能访问其他页面,我会担心 NTFS 权限。按照 p.campbell 的建议,查看匿名用户的提示。我认为您会发现您可以在 IIS 级别进行匿名处理,但您可能只向“索引”页面授予了适当的文件权限,并且需要将这些权限传播到有问题的其余文件/目录。

    编辑:这是一个链接,介绍了 NTFS 权限的一些基础知识。它归结为您的工作人员身份至少需要读取访问权限。默认情况下,该标识是 ASPNET 或 NETWORK SERVICE,具体取决于操作系统。不过,如果您愿意,您可以将您的应用程序池配置为其他内容:

    http://support.microsoft.com/kb/815153

    【讨论】:

    • 就像您在不解决网站问题时检查权限一样。在 Windows 资源管理器中右键单击您网站的根目录 -> 属性 -> 安全性。我想我有一个书签,它通过新的 .NET 站点的通用设置。您的匿名用户和 .net 工作者身份都需要访问权限。编辑:找到链接,更新答案。
    • 另外,请确保将更改传播到所有子文件夹,方法是从上述安全选项卡开始 -> 单击高级按钮 -> 更改权限 -> 替换所有子对象权限...
    • 遗憾的是,IIS 6.0 中几乎没有任何东西与 7.0 匹配:(
    • 这些只是 NTFS 权限。不同的 IIS 版本唯一不同的是您必须授予权限的用户的名称。无论如何,相同的基本概念都适用。如果您没有 ASPNET 用户,请尝试使用 NETWORKSERVICE。如果做不到这一点,请检查您的应用程序池运行的实际身份。
    • 当一个请求进来时,它被 IIS 处理。如果用户未通过身份验证,他们就会马上来。如果 anon 未配置为由 IIS 访问,IIS 将立即阻止您。接下来,假设一切正常,IIS 将请求传递给 .NET 运行时。如果 .NET 必须做任何事情,例如从文件系统中读取 .aspx 文件,它需要一个用户帐户。它所使用的用户帐户是分配给 .NET 应用程序池的标识。默认情况下,这是 ASPNET 或 NETWORKSERVICE,具体取决于您的 OS/IIS 版本。我认为 .NET 应用程序池标识的凭据不足。
    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2019-01-08
    • 2016-03-14
    相关资源
    最近更新 更多