1

非常に単純な問題があります。Identity Server 3 を展開する環境に応じて、ログオン ページに別の画像を表示したいと考えています。イメージ ソースの場所は で定義され、web.configビルド構成に応じて変換されます。

画像を表示できるようにパーシャル_login.htmlをオーバーライドしていますが、この構成変数を定義する変数をビューに (簡単に) 渡す方法がわかりません。

ここに示されているを使用することでこれが可能であると信じていCustomViewServiceます:http://identityserver.github.io/Documentation/docs/advanced/customizingViews.htmlしかし、変数をビューに渡す簡単な方法があるかどうか知りたいですを作成する必要はありませんCustomViewService

を拡張し、CommonViewModel実行時に Identity Server 3 でこれを解決することはできますか? はExtendedCommonViewModel非常に簡単です:

public class ExtendedCommonViewModel : CommonViewModel
{
  public string ImageLocation
  {
     get { return ConfigurationManager.AppSettings["ImageLocation"].ToString(); }
  }
}

そして、それを_login.htmlビューで次のように使用します<img src="{ImageLocation}" />

Replaceこれは、デフォルトのビュー サービスの関数に解析する必要があることを理解しています。 /DefaultViewService/DefaultViewService.cs

繰り返しますが、を作成せずに、Identity Server 3 のオーバーライドされた部分ビューに変数を渡す簡単な方法はありますCustomViewServiceか?

編集 :

Scripts追加 - 変数をパラメーターとして渡すことでソリューションのハックを見ることができますDefaultViewServiceOptionsが、これはハックすぎるようです。

を拡張してDefaultViewServiceOptions、ビューで使用できるカスタム モデル パラメータを含むカスタム ディクショナリを追加することが可能です。これは最善の解決策のように思えますが、DefaultViewService

4

1 に答える 1