IIS上的两个虚拟目录用于安全页面

时间:2012-10-02 06:39:46

标签: asp.net iis-7 security

我正在开发.net 4.0中的应用程序。在我的Web应用程序项目中,它具有安全文件夹。 现在我想将经过身份验证的用户重定向到受保护的页面。

我想在IIS上创建两个不同的虚拟目录。(另一个目录中的虚拟目录)

我能这样做吗?我怎样才能做到这一点?或者有什么办法吗?

先谢谢。

1 个答案:

答案 0 :(得分:0)

如果您希望手动使用代码执行此操作,则正确的位置在global.asax Application_AuthenticateRequest触发器上。这是一个示例,您可以根据自己的逻辑进行更改。

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    string cTheFile = HttpContext.Current.Request.Path;

    if(!cTheFile.Contains("/securedir/"))
    {
    if (HttpContext.Current.Request.IsSecureConnection)
    {
        HttpApplication app = (HttpApplication)sender;
        string cookieName = FormsAuthentication.FormsCookieName;
        HttpCookie authCookie = Context.Request.Cookies[cookieName];

        // if this is null, then the user is not logged in
        if (null == authCookie)
        {
  // for the same check you can also use
  //if(HttpContext.Current.User == null || HttpContext.Current.User.Identity == null || !HttpContext.Current.User.Identity.IsAuthenticated)

            string sExtentionOfThisFile = System.IO.Path.GetExtension(cTheFile);

            if (sExtentionOfThisFile.Equals(".aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                Response.Redirect("/", true);
                Response.End();

                // There is no authentication cookie.
                return;
            }
        }
        }
    }
    }
}