私はこのタイプのロジックは一般にクライアント側ではなくサーバ側で処理されるため、これはかなり珍しい作業だと言いたいと思いますが、これは一般的にはincr必要以上にクライアントの負荷を軽減し、ユーザーがログインしていない場合は、このコンテンツを必要としません。さらに、重要なデータを扱う場合は、明らかにセキュリティ上の意味があります。その情報は、基礎となるマークアップで容易に参照できるためです。
すべての免責事項を除いて、これを実行したい場合は、Sitefinityに慣れていたのと同じように、サイトの作業を行うことが最善のソリューションだと思います。 DNNでは、適切なロジックを含むコンテナを作成します。コンテナは各モジュールをラップし、コンテナ内にはコンテナを動的にするためのコード(サーバーまたはクライアント)を記述する機会があります。認証されていないとき
<%@ Control language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Containers.Container" %>
<%
var isLoggedIn = HttpContext.Current.User.Identity.IsAuthenticated;
if (isLoggedIn)
{
%>
<div class="dnn-logged-in">
<% } %>
<div class="Invisible"><div id="ContentPane" runat="server"></div></div>
<% if (isLoggedIn) { %>
</div>
<% } %>
これは、次のHTMLを生成します:
<div class="DnnModule DnnModule-DNN_HTML DnnModule-364">
<a name="364"></a>
<div class="Invisible">
<div id="dnn_ctr364_ContentPane">
[Dynamic Content Here]
</div>
</div>
</div>
を
このブルートフォースたとえば、私はDNN 6でDarkKnight肌に付属の「Invisible.ascx」コンテナを修正しました
と、このあなたが認証されています
<div class="DnnModule DnnModule-DNN_HTML DnnModule-364">
<a name="364"></a>
<div class="dnn-logged-in">
<div class="Invisible">
<div id="dnn_ctr364_ContentPane">
[Dynamic Content Here]
</div>
</div>
</div>
</div>
あなたがTHIをしたい場合私は、このタイプのロジックで現在使用しているそれぞれのコンテナを拡張しています。
ありがとうScott!私が後にしているのは、ある人がログアウトしているときとは対照的に、ある人がログインしているときに特定のhtml要素を分離する機能です。 Dnnは、フッターのためにほとんどの人が使用するユニバーサルクラスであるコントロールパネルフッター ".footer"に名前を付けるなど、厄介な習慣を持っています。私が将来何をするかは、自分のラッピングdivを追加して、.my-site .footer {do:stuff;}や.my-site .header {do:stuff;}のようなすべての要素を対象とします。そうでなければ私はDNNのcpanelを台無しにするつもりです。うまくいけば、DNN6はこれをソートします:) – SixfootJames
私はジェームスも同じことをやろうとしています。私のクライアントは、ログインしていればトップのナビゲーションを中心にし、そうでなければ右に揃えたいこれまで私はログインした状態を示す方法は見ていません。ブリー。 – Chad