0

私はここでいくつかの問題を抱えています。ユーザーがIDを入力すると、メインページとそのユーザー用が表示されますが、管理者がIDを入力すると、ユーザーのメインページに入り、上部のハイパーリンクで管理サイトをクリックする必要があり、自動的にログアウトし、入力すると自動的にログアウトします管理者パスワードを戻してから、管理者ページにリダイレクトするだけです。ユーザーがパスワードを入力するとユーザーページにリダイレクトされ、管理者がログインに管理者パスワードを入力すると、管理者にリダイレクトされるようにする方法は?スタッフとユーザー。ここで、プログラムの背後で実行されている 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 -ルート

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

4

2 に答える 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;
}

検証ユーザー コードでロール値を設定する必要があります。

于 2011-11-09T14:09:31.573 に答える
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>

この属性は、ナビゲーション コントロールに表示されるリンクの可視性を変更します。たとえば、管理者ロールを持つユーザーには、移動が許可されているリンクのみが表示されます。

ナビゲーション コントロールを見せていただけますか? thx事前に

于 2011-11-09T14:10:01.673 に答える