我有一个ASP.net
应用程序,其中有一个名为foo.aspx的页面,其中放置了一些安全数据。
我想禁止未登录的用户访问此页面,并且此登录用户名和密码必须由我在web.config
或其他地方设置。
但我有一个问题,已经有一个管理面板,它被Username限制为普通用户,密码我设置为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>