首页 文章

将管理员重定向到管理员页面,将用户重定向到用户页面

提问于
浏览
0

我在这里遇到了一些问题 . 当用户输入他们的ID时,它将显示主页面及其用户,但是当管理员输入他们的ID时,它将进入用户的主页面,我必须点击顶部超链接上的管理站点,它会自动注销,一旦我输入返回管理员passwrd然后只有它重定向到管理页面 . 如果用户输入他们的passwrd它重定向到用户页面,一旦管理员在登录时输入管理员密码,它重定向到管理员?我在这里有3个角色,这是管理员,工作人员和用户.Hereby我将为您提供我的aspx代码以及我在程序后面运行的vb代码 . 请帮助我 . 谢谢

ASPX

<asp:Login ID="Login1" runat="server" BackColor="#009933" BorderColor="Red" 
        BorderPadding="4" BorderStyle="Ridge" BorderWidth="1px" Font-Names="Verdana" 
        Font-Size="0.8em" ForeColor="Red" 
        DestinationPageUrl="~/MainPage.aspx" style="text-align: center" Height="171px" 
                    Width="266px"  VisibleWhenLoggedIn="True" TextLayout="TextOnTop">
        <TextBoxStyle Font-Size="0.8em" />
        <LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" 
            BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
        <InstructionTextStyle Font-Italic="True" ForeColor="Black" />
        <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" 
            ForeColor="White" />

    </asp:Login>

VB

Partial Class Login

  Inherits System.Web.UI.Page

End Class

staff 文件夹的web.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
        <authorization> 
            <allow roles="staff" /> <deny users="" /> 
        </authorization> 
    </system.web> 
</configuration>

admin 文件夹的web.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.web> 
        <authorization> 
            <allow roles="adminstrator" /> <deny users="" /> 
        </authorization> 
    </system.web> 
</configuration>

web.config - root

<configuration> 
    <appSettings/> 
    <connectionStrings> 
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/> 
        <add name="ASPNETDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Se7en\Desktop\Personal\VIVA\1\App_‌​Data\ASPNETDB.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/> 
    </connectionStrings>

2 回答

  • 0

    您可以在登录按钮单击事件中执行此操作:

    switch (role)
        {
         case 0:
          Response.Redirect("MainPage.aspx");
          break;
         case 1:
          Response.Redirect("StaffPage.aspx");
          break;
         case 2:
          Response.Redirect("UserPage.aspx");
          break;
    }
    

    您需要在验证用户代码中设置角色值 .

  • 0

    刚看到你重新编辑的问题......你的导航是什么样的?你用什么控件?你使用什么样的MembershipProvider(如果有的话)?

    您仍可以尝试使用treeView或菜单控件(绑定到站点 Map 文件) . 使用这些控件可以使用 securityTrimming (有关详细信息,请参阅msdn) .

    例如(来自msdn):

    <system.web>
    <!-- …other configuration settings -->
      <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
        <providers>
          <add name="XmlSiteMapProvider"
            description="Default SiteMap provider."
            type="System.Web.XmlSiteMapProvider "
            siteMapFile="Web.sitemap"
            securityTrimmingEnabled="true" />
        </providers>
      </siteMap>
    </system.web>
    

    此属性将更改导航控件中显示的链接的可见性 . 例如,具有角色管理员的用户 - 只会看到允许他们导航到的那些链接 .

    你能告诉我们你的导航控件吗?提前thx

相关问题