0

こんにちは(私はこれにかなり慣れていません)、

C# プログラムにログイン コントロールがあり、ユーザーがログインすると、他のプログラム (ポータル) へのリンクを表示できます。ユーザーがログインしたら、管理者以外の全員に対して「新しいユーザーの作成」リンクを非表示にすることはできますか? 管理者のみが新しいユーザーを作成できるようにしたいので、これはweb.configで変更するものですか(これにはCreateUserWizardを使用します)。

ありがとうございました。

4

4 に答える 4

2

私があなたを理解しているなら、あなたは特定の役割(この場合は「管理者」の役割)であるasp.net Webサイトの認証されたユーザーにのみページへのアクセスと表示を許可したいですか?

これを行うには、サイトマッププロバイダーでセキュリティトリミングを有効にする必要があります。

 <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
    <providers>
      <add name="XmlSiteMapProvider"
        description="Default SiteMap provider."
        type="System.Web.XmlSiteMapProvider "
        siteMapFile="Web.sitemap"
        securityTrimmingEnabled="true" />
    </providers>
  </siteMap>

これにより、サイトマッププロバイダーは、メンバーが認証されているかどうか、およびメニュー項目を表示するときにメンバーがどのような役割を果たしているかを考慮するように指示されます。

web.configのロケーションパスとロールを介したパスへのアクセスを実際にブロックするには、次のようにします。

<location path="~/CreateNewUser.aspx">
 <system.web>
  <authorization>
   <allow roles="Admin"/>
   <deny users="*"/>
  </authorization>
 </system.web>
</location>

完全な概要については、 「方法:ASP.NET2.0でロールマネージャーを使用する」を参照してください。

于 2009-11-03T11:02:14.650 に答える
2

'admin'がアプリケーションのロールであると想定しています。その場合は、LoginViewコントロールを使用できます。

<asp:LoginView id="LoginView1" runat="server">
    <RoleGroups>
        <asp:RoleGroup Roles="Admin">
            <ContentTemplate>
                Stuff only an administrator can see
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

IsUserInRoleメソッドを使用して、プログラムで実行することもできます。例:

somePanel.Visible = Roles.IsUserInRole("Admin");
于 2009-11-03T11:02:33.837 に答える
0

コードビハインド:

createUserLink.Visible = currentUser.IsAdmin;
于 2009-11-03T11:01:37.110 に答える
0

LoginViewコントロールは、ユーザーの役割に応じて特定のコンテンツを表示できます。

于 2009-11-03T11:04:35.580 に答える