2

いくつかのオプションを追加するには、N2認証のロジックをカスタマイズする必要があります。

いくつかのオプションを含むRadioButtonListを追加し、ログイン時にそのRadioButtonの選択に基づいてセッション変数を設定する必要があります。そうしないと、ユーザーはN2のプレビューペインにサイトを表示できません。RadioButtonListをN2/Login.aspxに追加し、N2.Edit.Loginを拡張するカスタムログインクラスを作成し、Login1_Authenticateメソッドをオーバーライドして、base.Login1_Authenticateを呼び出す前にカスタムロジックを実行できると思いました。拡張可能に設計されていないようで、そのメソッドをオーバーライドすることはできません。変更を加えるには、これらの変更を使用してN2のカスタムコンパイルを実行する必要があります。これは避けたいので(変更は閉じますが、拡張は開きます)、N2を更新するたびに変更をやり直す必要はありません。

私が試したもう1つのルートは、N2 / CustomLogin.aspxを作成し、そのカスタムクラスにすべてのロジックを追加し、login.aspxではなくCustomLogin.aspxを指すようにweb.configを設定することでした。ログインに失敗すると、ラジオボタンオプションがないLogin.aspx(ハードコーディングされているものを想定)にリダイレクトされました。

.Net 4.0(MVCアプリ)でN2CMS2.0.0.0を使用しています

4

1 に答える 1

1

N2は、標準のForms Auth、ASP.NETメンバーシップ、およびロールプロバイダーを内部で使用します。ログオンしているユーザーの名前がadminであるか、3つのN2標準ロール(管理者、編集者、作成者-私は思う)のいずれかである限り、管理者サイトにアクセスできます。

そのため、アプリで完全に別のログインページを作成することをお勧めします。web.configの次のようなエントリを使用して、カスタムログインページでフォーム認証をポイントします。

<authentication mode="Forms">
  <forms loginUrl="~/account/login"
         timeout="2880" />
</authentication>

カスタムログインフォームでは、標準のフォーム認証を実行して、ユーザーにサインインさせたり、セッション変数を設定したりできます。

私はこれを数回行いましたが、正常に機能します。うまくいかない場合は、問題を示すサンプルを提供することをお勧めします。私がお手伝いできるかどうかを確認します。

于 2011-02-23T20:33:58.200 に答える