登录页面未正确重定向

时间:2016-02-17 00:12:20

标签: asp.net

我在asp.net项目中创建了2个文件夹。 (帐户和管理员) 我想将Register.aspx页面限制为仅限管理员用户。

我的Login.aspx页面位于Account文件夹中,我在该文件夹中包含了一个web.config,其中包含以下代码;

<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
  <deny users="?"/>
</authorization>
</system.web>
</configuration>

我已将Register.aspx文件放在AdminFolder中,并带有以下web.config代码。

<?xml version="1.0"?>
<configuration>
<system.web>
  <authorization>
    <allow roles="Admin"/> 
    <deny users="*"/> 
  </authorization>
</system.web>
</configuration>

在测试此方法时,我尝试通过直接转到Register.aspx文件来启动应用程序。正如所料,我被重定向到Login.aspx页面。

浏览器中显示的网址是

http://localhost:49319/Account/Login.aspx?ReturnUrl=%2fAdminFolder%2fRegister.aspx

我以管理员用户身份登录,当我的标题超链接更改为注销时,我可以看到我已登录。 (我也可以导航到Account中的其他文件以确认我已登录)但是,应用程序仍然在登录页面而不是重定向到Register.aspx页面。

我希望在登录成功后重定向到Register.aspx页面。

即使我以管理员用户身份登录,我也无法直接导航到Register.aspx页面。我被重定向到Login.aspx。

我确认(通过我的Sql Server数据库)我的测试用例中的用户是Admin角色。

有人能在这方面向我推进正确的方向吗?提前感谢您的时间和考虑。

2 个答案:

答案 0 :(得分:0)

尝试将AdminFolder中的web.config更改为:

<?xml version="1.0"?>
<configuration>
<system.web>
  <authorization>
    <allow roles="Administrator"/>
   <deny users="?"/> 
  </authorization>
</system.web>
</configuration>

通常,这是数据库中显示的RoleName

答案 1 :(得分:0)

我看到了我的错误。我允许管理员角色,然后拒绝所有角色(包括管理员)。我应该在AdminFolder中使用以下内容

<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
  <allow roles="Admin"/>
  <deny users="?"/>
</authorization>
</system.web>
</configuration>

感谢所有反馈。