【问题标题】:response.redirect not working with foldersresponse.redirect 不适用于文件夹
【发布时间】:2012-10-15 18:16:37
【问题描述】:

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>

尝试访问文件夹中的页面时出现错误。我将它们从文件夹中删除,并使用基于这些页面上的凭据的表单身份验证拒绝访问。如果它们在目录中,您如何显示页面。

【问题讨论】:

  • 您在 web.config 中做了什么...请发布该代码
  • 这些文件夹和页面是否存在?抛出错误?
  • 如果页面不在文件夹中,它们可以工作,但我需要角色控制杆访问

标签: c# asp.net url login response.redirect


【解决方案1】:

您需要在 web.config 中指定每个文件夹;

  <location path="IALOPages">
    <system.web>
      <authorization>
          <deny users="*" />
          <allow roles="CEO" />
      </authorization>
    </system.web>
  </location>

这应该可以解决您的问题,

【讨论】:

    【解决方案2】:

    allow 条目应位于 deny 条目之前,如下所示:

    <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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多