Asp.net仅允许访问管理员

Asp.net仅允许访问管理员,asp.net,visual-studio-2010,session,admin,session-variables,Asp.net,Visual Studio 2010,Session,Admin,Session Variables,我在秘密文件夹中有一个管理员页面,只能由管理员访问。我尝试的方法是创建一个会话,并检查登录的人是否是管理员。这无法识别管理员。以下是我的尝试。有人能看出我哪里出错了吗是不是因为管理员页面位于不同的文件夹中,并且当我创建会话时,当我访问管理员区域时,它不会识别它?如果是,我如何克服这一问题? 通过HttpContext类获取用户名 var user = HttpContext.Current.User.Identity.Name; if (user!= "admin") {

我在秘密文件夹中有一个管理员页面,只能由管理员访问。我尝试的方法是创建一个会话,并检查登录的人是否是管理员。这无法识别管理员。以下是我的尝试。有人能看出我哪里出错了吗是不是因为管理员页面位于不同的文件夹中,并且当我创建会话时,当我访问管理员区域时,它不会识别它?如果是,我如何克服这一问题?


通过HttpContext类获取用户名

    var user = HttpContext.Current.User.Identity.Name;
    if (user!= "admin")
    {
        Response.Redirect("~/NotAdmin.aspx");
    }
    else
    {
       showtables();
    }

在我看来,与它一起工作是不好的。如果应用程序托管在负载平衡的服务器上,该怎么办。如果服务器正在进行负载平衡,当负载平衡器向另一台服务器发送请求时,您的用户将丢失会话状态信息。

布尔值或重定向失败的原因是什么?还是这个想法完全行不通?@Nomad101这个想法行不通。当以“管理员”身份登录时,它只会在应该允许我访问时重定向我。无法识别管理员您使用的是标准Web表单吗?请检查@NikolaMitev的答案,如果您是,我将发布该答案。@Nomad101是的,它有效。谢谢:)谢谢你,尼古拉。这是可行的:)但是为什么它不适用于会话呢?虽然这似乎解决了问题,但您对负载平衡的担心是完全没有根据的。如果您的网站托管在负载平衡服务器上,则只需将状态管理从InProc切换到SQL Server或状态服务器即可。当然不需要不使用会话变量@谢谢你的建议。我会记住这一点。非常感谢:)
    var user = HttpContext.Current.User.Identity.Name;
    if (user!= "admin")
    {
        Response.Redirect("~/NotAdmin.aspx");
    }
    else
    {
       showtables();
    }