我需要在我的网站中设置一个只有特定用户可以查看的区域。
我所做的是创建一个视频文件夹。在该文件夹下,我有一个名为 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" />
即使我没有 VidUser1 的角色,我仍然可以访问 Watch.aspx 页面。
难道我做错了什么?
正如下面的参考是我在用户使用他们的用户 ID 登录后使用的代码,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);
}
斯蒂芬,我的根 web.config 页面中有以下内容,但仍然让我进入 Watch.aspx 页面:
<location path="Video/WatchVid">
<system.web>
<authorization>
<allow roles="StreamingUser1dfdfdfd" />
<deny users="?" />
</authorization>
</system.web>
</location>
请注意我是如何创建一个 StreamingUser1dfdfdfd 的虚拟角色来检查它的。我仍然能够访问 Watch.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);
}
但是现在它不会让我进入 Watch.aspx 页面,因为我得到一个错误。