通过登录授权单个aspx页面
本文关键字:aspx 页面 单个 授权 登录 | 更新日期: 2023-09-27 18:21:03
我有一个ASP.net
应用程序,其中有一个名为foo.aspx的页面,其中放置了一些安全数据。
我想拒绝未登录的用户访问此页面,并且此登录用户名和密码必须由我在web.config
或其他地方设置。
但我有一个问题,已经有一个管理面板,它仅限于普通用户通过用户名,密码我在web.config
中使用设置为表单的身份验证模式进行了设置。
现在,我如何限制foo.aspx页面,因为身份验证代码不能重复,并且还需要单独的登录页面。
在web.config中,您可以定义元素(在system.web关闭之后),在其中为应用程序的特定区域/页面设置特定配置。
例如:
<configuration>
<system.web>
....
</system.web>
<location path="Foo.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
</configuration>
在那里,您可以设置与应用程序使用的授权模式不同的授权模式。
在上面的示例中,您的页面不会受到全局配置的标准授权模式的保护,但您可以选择以自定义方式直接在页面本身中保护页面。
在foo.aspx页面的顶部有
if(login == false)
send them to login page;
这将确保他们在访问foo页面之前已经登录。
实现这一点的最佳方法是拥有两个不同的asp.net应用程序。您仍然可以将IIS配置为将Foo应用程序放在另一个文件夹/子域中。
然而,您可以尝试开发自己的AuthenticationModule,它需要有一个受Admin authent保护的URL列表和一个受Foo authent保护,每个URL都有自己的特定登录页面和默认登录密码对或用户表。以下是开发自定义Authent模块的教程:http://www.codeproject.com/Articles/5353/Custom-Authentication-provider-by-implementing-IHt
好运
您可以将页面foo.aspx
添加到文件夹中,并可以通过添加新的web.config
文件来保护此文件夹
例如
Folder
-foo.aspx
-web.config
在新的web.config
文件中
<?xml version="1.0" encoding="utf-8"?><configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>