Перенаправление администратора на страницу администратора и пользователя на страницу пользователя

asp.net vb.net authentication response.redirect asp.net-roles

7217 просмотра

2 ответа

У меня тут какая-то проблема. Когда пользователь вводит свой идентификатор, он отображает главную страницу и его для пользователя, но когда администратор вводит свой идентификатор, он входит на главную страницу пользователя, и мне приходится нажимать сайт администратора на верхней гиперссылке, и он автоматически выходит из системы, и как только я вхожу назад admin passwrd, а затем только перенаправление на страницу администратора. как сделать так, как только пользователь вводит свой пароль, он перенаправляет на страницу пользователя и, как только администратор вводит пароль администратора в логине, он перенаправляет на admin? У меня есть 3 роли, которые являются admin , персонал и пользователь. Итак, я предоставлю вам мой код 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 для папки персонала

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

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> 

Автор: braveen kumar Источник Размещён: 13.07.2019 08:45

Ответы (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;
}

вам нужно установить значение роли в вашем валидном коде пользователя.

Автор: SarahX Размещён: 09.11.2011 02:09

0 плюса

Только что увидел ваш отредактированный вопрос ... Какова ваша навигация ? Какие элементы управления вы используете? какой тип MembershipProvider (если есть) вы используете?

Вы все еще можете попробовать использовать treeView или элемент управления меню (привязанный к файлу карты сайта). Использование этих элементов управления позволяет использовать 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>

Этот атрибут изменит видимость ссылок, появляющихся в ваших элементах управления навигацией. Например, пользователи с ролью администратора - будут видеть только те ссылки, к которым им разрешено переходить.

Не могли бы вы показать нам свои элементы управления навигацией? спасибо заранее

Автор: Pilgerstorfer Franz Размещён: 09.11.2011 02:10
Вопросы из категории :
32x32