1

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

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

但我有一个问题,已经有一个管理面板,它被Username限制为普通用户,密码我设置为web.config使用身份验证模式设置为表单。

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

4

4 回答 4

0

在 web.config 中,您可以定义元素(在 system.web 关闭之后),您可以在其中为应用的特定区域/页面设置特定配置。

例如:

<configuration>
<system.web>
....
</system.web>
<location path="Foo.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>

在那里,您可以设置与您的应用程序使用的授权模式不同的授权模式。

在上面的示例中,您的页面将不受全局配置的标准授权模式的保护,但您可以选择以自定义方式直接在页面本身中保护您的页面。

于 2013-07-04T08:19:03.657 回答
0

在 foo.aspx 页面的顶部,您有

    if(login == false)
      send them to login page;

这将确保他们在访问 foo 页面之前就已登录。

于 2013-07-04T08:20:30.183 回答
0

实现这一目标的最佳方法是拥有两个不同的 asp.net 应用程序。您仍然可以将 IIS 配置为将 Foo 应用程序放在另一个文件夹/子域中。

但是,您可以尝试开发自己的 AuthenticationModule,它需要有一个受 Admin-authent 保护的 url 列表和一个受 Foo-authent 保护的 url 列表,每个都有其特定的登录页面和默认登录密码对或用户表。这是开发自定义 Authent 模块的教程:http: //www.codeproject.com/Articles/5353/Custom-Authentication-provider-by-implementing-IHt

祝你好运

于 2013-07-04T09:27:39.257 回答
0

您可以将页面添加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> 
于 2013-07-04T09:34:45.917 回答