【问题标题】:Redirecting admin to admin page and user to user's page将管理员重定向到管理页面,将用户重定向到用户页面
【发布时间】:2011-12-25 08:24:01
【问题描述】:

我在这里遇到了一些问题。当用户输入他们的 id 时,它将显示主页及其用户但是当管理员输入他们的 id 时,它将进入用户的主页,我必须单击顶部超链接上的管理站点,它会自动注销,一旦我进入返回管理员密码,然后只有它重定向到管理页面。如何使它像一旦用户输入他们的密码它重定向到用户页面,一旦管理员在登录中输入管理员密码它重定向到管理员?我在这里有 3 个角色是管理员,员工和用户。在此,我将为您提供我的 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

web.config 用于 staff 文件夹

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

web.config 用于 admin 文件夹

<?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> 

【问题讨论】:

    标签: asp.net vb.net authentication response.redirect asp.net-roles


    【解决方案1】:

    你能在你的登录按钮点击事件中这样做吗:

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

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

    【讨论】:

    • 我不知道如何使用它。你能帮我解决这个问题吗,因为我在使用 aspx 和 vb.how 来实现该代码方面有点新?请帮帮我。谢谢
    • 它显示语法错误的情况...我有这个代码但它没有那么有用 If (Session("Loggedin") = 1) Then End If (GetUserTypeFromUserID(userID) = " admin") Then Response.Redirect("/admin/AdminMainPage.aspx") Else End If ((GetUserTypeFromUserID(userID) = "staff")) Then Response.Redirect("StaffMainPage.aspx") Else Response.Redirect(" MainPage.aspx") 结束如果
    【解决方案2】:

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

    您仍然可以尝试使用树视图或菜单控件(绑定到站点地图文件)。使用这些控件可以让您使用 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>
    

    此属性将更改出现在导航控件中的链接的可见性。例如,具有管理员角色的用户 - 只会看到他们被允许导航到的链接。

    能否请您向我们展示您的导航控件? 提前谢谢

    【讨论】:

    • 感谢您的回复。好吧,我使用的是开发工具中提供的普通 asp.net 登录控件。我有 3 个角色,分别是用户、管理员和员工,具有三个不同的文件夹all together.hw 是使用那个案例以及在哪里应用它?请帮助我..提前谢谢。
    • 所以您使用的是会员服务提供商?什么样的?您能否发布/编辑您的帖子并添加您的 web.config 会员资格 + 角色设置!
    • 这是员工页面的网络配置 这是用于管理页面
    • 我刚刚将您的配置 sn-ps 添加到您的问题中 - 但我仍然缺少一些会员 Provider 配置.. 请在此处发布或将其添加到您的问题中!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    相关资源
    最近更新 更多