我需要在我的网站中只有某些用户可以查看的区域。
我所做的是创建一个Video文件夹。在那个foler下我有文件夹 一个叫做Login,另一个叫做WatchVid。在Login文件夹中,我有一个名为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" />
我仍然可以访问Watch.aspx页面 ,即使 我没有VidUser1的角色。
我做错了吗?
正如下面的参考一样,一旦用户使用他们的用户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);
}
Stephan,我在我的根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页面,因为我收到错误。
答案 0 :(得分:0)
在最外层(根)web.config文件中使用位置标记。
编辑以显示我们的一个应用程序的(改编的)工作示例:
<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>
答案 1 :(得分:0)
你想要改变
<deny users="?"/>
到
<deny users="*"/>
*
表示拒绝所有人。然后你的allow roles
会让你担任正确的角色。
?
表示拒绝未经身份验证的用户。由于您已通过身份验证,因此不会被拒绝。