我有一个非常简单的问题:根据我部署 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
默认视图服务中的函数,所以这就是这个想法落空的地方:https ://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Services /DefaultViewService/DefaultViewService.cs
所以重申一下;有没有一种简单的方法可以将变量传递到 Identity Server 3 中的覆盖部分视图,而无需创建一个CustomViewService
?
编辑 :
附加 - 我可以通过将变量作为Scripts
参数传递给解决方案来查看解决方案,DefaultViewServiceOptions
但这似乎太老套了。
可以扩展DefaultViewServiceOptions
并添加一个自定义字典,该字典可以包含自定义模型参数,然后可以在视图中使用。这似乎是最好的解决方案,但意味着改变DefaultViewService