如何创建模块以仅允许管理员访问网站?

时间:2010-08-26 18:07:01

标签: c# asp.net

有时我需要阻止访问网站,但我不想阻止管理员访问,因此他们应该能够看到网站,为此我想我需要制作一个模块。

我如何制作这样的模块?

这是我的代码。我只是不知道应该放在哪里。

var user = Membership.GetUser() as User;

if (user == null || (user != null && !user.IsAdministrator))
{
    // Block
}

2 个答案:

答案 0 :(得分:1)

您可以使用web.config文件来阻止对网站或网站的某些部分的访问,以配置您的目录。

举个例子,

  <location path="/admin">
        <system.web>
            <authorization>
                <deny users="*" />
                <allow role="Administrator" />
            </authorization>
        </system.web>
    </location> 

编辑:根据您的上述评论,您可能会对bottom of this article中描述的技术感兴趣,该技术可使应用程序脱机但仍允许管理员访问。

有关更多示例和信息,请参阅docs on the location element

答案 1 :(得分:1)

如果“管理员”是您的会员提供商中的角色,那么您可以在web.config中打开/关闭此功能。

正常操作:

<location path=".">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

仅限管理员模式:

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