response.redirect无效。我使用Visual Studios .net它没有文件夹,但我正在做角色和权限,所以我需要文件夹。为什么我的网址不起作用?无法在目录中显示要显示的页面。
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Membership.ValidateUser(Login1.UserName, Login1.Password) == true)
{
Login1.Visible = true;
Session["user"] = User.Identity.Name;
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
// Response.Redirect("");
if (Roles.IsUserInRole(Login1.UserName, "CEO"))
{
Response.Redirect("~/CEOPages/CEO.aspx");
}
else if (Roles.IsUserInRole(Login1.UserName, "IALO"))
{
Response.Redirect("~/IALOPages/IALO.aspx");
}
else if (Roles.IsUserInRole(Login1.UserName, "Staff"))
{
Response.Redirect("~/Staff Pages/Staff.aspx");
}
}
else
{
Response.Write("Invalid Login");
}
}
这是文件夹配置文件
<configuration>
<system.web>
<authorization>
<deny users="*" />
<allow roles="CEO" />
<deny roles="Staff" />
<deny roles="IALO" />
</authorization>
</system.web>
</configuration>
尝试访问文件夹中的页面时出错。我从文件夹中删除了它们,并根据这些页面上的凭据使用表单身份验证拒绝访问。如果页面在目录中,它们如何显示。
答案 0 :(得分:1)
您需要在web.config中指定每个文件夹;
<location path="IALOPages">
<system.web>
<authorization>
<deny users="*" />
<allow roles="CEO" />
</authorization>
</system.web>
</location>
这可以解决您的问题,
答案 1 :(得分:0)
允许条目应位于拒绝条目之前,如下所示:
<configuration>
<system.web>
<authorization>
<allow roles="CEO" />
<deny roles="Staff" />
<deny roles="IALO" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
来自MSDN: “在运行时,授权模块从最本地配置文件开始迭代允许和拒绝元素,直到授权模块找到适合特定用户帐户的第一个访问规则。然后,授权模块授予或拒绝访问URL资源取决于找到的第一个访问规则是允许还是拒绝规则。“
http://msdn.microsoft.com/en-us/library/8d82143t%28v=vs.80%29.aspx