質問

いサイトを2部ずつお客様は、一のための管理者、。各部門は、独自のディレクトリを独自。config、サイトマップ.セキュリティやアクセスに働きます。

私はログインとして管理、見たいメニュー項目へのリンクその他のセクションアクしています。加えへのリンクサイトマップ、例えば:

<siteMapNode url="~/Customer/Default.aspx?3" title="Customer Site"
description="Switch to customer site" roles="Administrator"/>

このような効果がまだまだ、メニュー項目サービスにログインした場合、としております。私がon securityトリミング、

<siteMap enabled="true">
  <providers>
    <add name="InternalSiteMap" type="System.Web.XmlSiteMapProvider" 
        siteMapFile="~/Internal/Internal.sitemap" />
    <add name="CustomerSiteMap" type="System.Web.XmlSiteMapProvider" 
     siteMapFile="~/Customer/Customer.sitemap" securityTrimmingEnabled="true" />
  </providers>
</siteMap>

メニュー項目をすべて崩れてきています。

っています。configsの内部およびお客様のフォルダなどののお客様:

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

の管理者:

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

再度、認定作業をしたい場合はログインとしてお客様をクリックしても内部のサイトにリンクメニューかんにリダイレクトにログインページです。としてのadmin(管理者までをクリックし、管理サイトです。どもあった保安上のトリミング、サイトマッププロバイダーへのリンクはその認定のためのメニューのメニューが消えます。と思欠?かを設定する必要があり、asp.メニューでの制御の仕事と組み合わせることによって?

更新:私は幸いでいることができます。また傾斜捨メニューの制御を書き、自らのだが提供できるヒントは、どちらかというと好ましのコースです。していましたが、特に問題はありませんがセキュリティの役割、アクセスルールとして期待される。ではニューオータニのアーケード制御、セキュリティ切断する必要がありません。メニューが消えalltogetherセキュリティに関するトリミングをonにして、サイトマップ.

更新:謝のためにこのブログでお祝.学んだことからこのことがあればサイトマップエントリがない経路は、URLをもっsubmenuesに制御できないのかを推測アクセス権の設定を行います。configを使用し、指定の役割は、サイトマップ.それを非表示にすることができますデフォルトです。

役に立ちましたか?

解決

から 水平メニューが消えるとsecurityTrimmingEnabled="true":

必ず全ての役割は、アクセス の未利用)ダミー siteMapNodeで 根などの役割="*"を ます。サイトマップを以下に示す。

<?xml version="1.0" encoding="utf-8" ?>
<siteMap  enableLocalization="true"
     xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title="" roles="*"  description="">
      <siteMapNode url="~/default.aspx" resourceKey="siteMapHome" 
       title="Home" roles="admin,account" description="" />
<!-----More nodes-->

他のヒント

http://www.vbforums.com/showthread.php?p=3625975

ログインしているユーザーに管理者の役割があることを確認します。

編集:

また、siteMapNodeでロールを指定することを忘れないでください。私は、ロールベースのサイトマップが既存のロールで機能することを信じています。たとえば、ユーザーがサイトノートで指定したパスにアクセスできる場合、それが表示されます。

webs.configでパスも指定します。

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

最後に、比較が一致するように、サイトマップから「〜」を削除します。

これがすべて完了し、まだ機能しない場合は、web.configsをマージして権限が失われないようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top