通过登录授权单个aspx页面

本文关键字:aspx 页面 单个 授权 登录 | 更新日期: 2023-09-27 18:21:03

我有一个ASP.net应用程序,其中有一个名为foo.aspx的页面,其中放置了一些安全数据。

我想拒绝未登录的用户访问此页面,并且此登录用户名密码必须由我在web.config或其他地方设置。

但我有一个问题,已经有一个管理面板,它仅限于普通用户通过用户名密码我在web.config中使用设置为表单的身份验证模式进行了设置。

现在,我如何限制foo.aspx页面,因为身份验证代码不能重复,并且还需要单独的登录页面。

通过登录授权单个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>