Перенаправление администратора на страницу администратора и пользователя на страницу пользователя - PullRequest
0 голосов
/ 09 ноября 2011

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

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Только что увидел ваш отредактированный вопрос ... Какова ваша навигация ?Какие элементы управления вы используете?какой тип 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>

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

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

0 голосов
/ 09 ноября 2011

Можете ли вы сделать это в своем событии нажатия кнопки входа в систему:

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

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

...