.ASPX:如何将 Web 访问限制为仅登录用户?

.ASPX: How do I restrict web access to logged on users only?

问题:任何人都可以访问网页,但我只希望登录用户有权访问它。


背景:

示例网址:

    A. "www.webpage.com/logon.aspx"
    B. "www.webpage.com/inside.html"

期望的结果:
每个人都可以访问 "logon.aspx" 页面
只有登录用户才能访问"inside.html"页面
任何直接访问 "B" 的尝试都会触发重定向到 "A"
无需额外使用程序代码

之前的尝试: 我一直在摆弄 web.config 文件(身份验证和授权),但无济于事(501 服务器错误、401 授权错误、运行时应用程序错误)。


Web.Config 文件:
<system.web>
<authentication>
<forms name=".ASPXFORMSAUTH" loginUrl="logon.aspx" protection="All" timeout="1" path="/" slidingExpiration="true" requireSSL="false" />
</authentication>
<authorization></authorization>
</system.web>


底线:我确定这是一个非常 basic/easy 的配置,只是到目前为止我还没有做到。另外,我不想为了完成看似基本的任务而编写任何额外的代码。

提前致谢!

好的,我想通了(7 小时后)。它需要四件事(基于示例文件结构):


1。使用 FormsAuthentication 模块

VS2012 → 项目 → 您的 credentials/authentication 代码 → 使用 FormsAuthentication.RedirectFromLogin(_var1_, _var2_) 而不是 Response.Redirect(inside.html)


2。在 web.config 文件中添加新节点

<system.webServer><handlers><add name="HTMLHandler" type="System.Web.StaticFileHandler" path="*.html" verb="GET" /></handlers>


3。在 Forms 标签

中包含 'defaultUrl' 属性
<forms name=".ASPXFORMSAUTH" loginUrl="logon.aspx" defaultUrl="inside.html" protection="All" timeout="1" path="/" slidingExpiration="false" requireSSL="false" />


4。向 'web.config' 文件

添加位置标签授权限制
<location path="inside.html"><system.web><authorization><deny users="?" /></authorization></system.web></location>

请参阅我的评论(下方)以了解对这四部分的解释。