.ASPX:如何将 Web 访问限制为仅登录用户?
.ASPX: How do I restrict web access to logged on users only?
► 问题:任何人都可以访问网页,但我只希望登录用户有权访问它。
背景:
- 网络服务器 = IIS 8
- 服务器 OS = Windows 服务器 2012
- 框架 = .NET 4.5
- 环境=.\WebFolder\logon.aspx,.\WebFolder\inside.html
- 网站 = 保护 html 页面 ("inside.html") 的简单登录页面 ("logon.aspx")。
- 用户 = 外部人员(即非 Intranet)
示例网址:
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>
请参阅我的评论(下方)以了解对这四部分的解释。
► 问题:任何人都可以访问网页,但我只希望登录用户有权访问它。
背景:
- 网络服务器 = IIS 8
- 服务器 OS = Windows 服务器 2012
- 框架 = .NET 4.5
- 环境=.\WebFolder\logon.aspx,.\WebFolder\inside.html
- 网站 = 保护 html 页面 ("inside.html") 的简单登录页面 ("logon.aspx")。
- 用户 = 外部人员(即非 Intranet)
示例网址:
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>
请参阅我的评论(下方)以了解对这四部分的解释。