我正在.net 4.0 中开发应用程序。在我的 Web 应用程序项目中,它具有安全文件夹。现在我只想将经过身份验证的用户重定向到安全页面。
我想在 IIS 上创建两个不同的虚拟目录。(另一个目录中的虚拟目录)
我可以这样做吗?我怎样才能做到这一点?或者有什么办法吗?
先谢谢了。
如果您想使用代码手动执行此操作,那么正确的位置就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;
}
}
}
}
}
}