表单身份验证-子文件夹Web.配置不工作
本文关键字:配置 工作 Web 文件夹 身份验证 表单 | 更新日期: 2023-09-27 18:09:58
我需要一个区域在我的网站,只有某些用户可以查看。
我所做的是创建一个视频文件夹。文件夹下面有文件夹一个叫Login,另一个叫WatchVid。在登录文件夹中,我有一个名为Login.aspx的页面。一旦用户登录,他们将转到/WatchVid/Watch.aspx如下图所示:
Video Folder
|
|
----> Login Folder
| |
| |
| ---> Login.aspx
|
----> WatchVid Folder
|
|
--->Watch.aspx
我在我的WatchVid中有以下web配置文件,只允许具有VidUser的角色查看页面:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="VidUser" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
我发现即使我改变:
<allow roles="VidUser" />
To:
<allow roles="VidUser1" />
我仍然可以得到这个手表。aspx页即使我没有VidUser1的角色。
我做错了什么吗?
就像下面的参考一样,是我在用户使用他们的userid pwd:
登录时使用的代码 protected void btnLogin_Click(object sender, EventArgs e)
{
if (Roles.IsUserInRole(txtUserName.Text, "StreamingUser"))
{
const string url = "~/Video/WatchVid/Watch.aspx";
Response.Redirect(url);
}
Stephan,我的根网上有以下内容。配置页面,但仍然让我进入手表。aspx页面:
<location path="Video/WatchVid">
<system.web>
<authorization>
<allow roles="StreamingUser1dfdfdfd" />
<deny users="?" />
</authorization>
</system.web>
</location>
请注意我是如何创建StreamingUser1dfdfdfd的虚拟角色来检查它的。我还能找到那块手表。aspx页面。
迈克:
我在我的WatchVid文件夹下有以下内容,但当我使用*时获得访问错误-有任何想法吗?:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="StreamingUser" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
我得到以下消息:未授权:由于服务器配置导致登录失败。根据您提供的凭据和Web服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。请与Web服务器管理员联系以获得其他帮助。
请记住,这仍然有效:
protected void btnLogin_Click(object sender, EventArgs e)
{
if (Roles.IsUserInRole(txtUserName.Text, "StreamingUser"))
{
const string url = "~/Video/WatchVid/Watch.aspx";
Response.Redirect(url);
}
但现在它不让我通过手表。
你需要改变
<deny users="?"/>
<deny users="*"/>
*
表示拒绝所有人访问。然后你的allow roles
让合适的角色进入。
?
表示拒绝未经认证的用户访问。由于您已经过身份验证,因此不会拒绝您。
在最外层(根)web使用位置标签。配置文件。
编辑以显示我们应用程序中的一个(改编的)工作示例:
<authorization>
<allow users="?" />
</authorization>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Videos/WatchVid">
<system.web>
<authorization>
<allow roles="VidUser" />
<deny users="?" />
</authorization>
</system.web>
</location>