【问题标题】:IdentityServer4. Access client info from _template身份服务器 4。从 _template 访问客户信息
【发布时间】:2022-01-08 01:41:22
【问题描述】:

我想调整基于“客户名称”生成的页面。我可以从 ASP _template 页面中访问客户端数据吗?它在管道中的这一点可用吗?

我想根据他们是否在第一个实例中使用 IFrame 来进行不同的渲染。也许有更好的方法来实现这一目标

谢谢

【问题讨论】:

    标签: identityserver4


    【解决方案1】:

    您可以根据自己的喜好调整 AccountController 中的用户界面,它还负责验证用户名/密码,因此它可以完全访问用户和客户端详细信息那一点。

    下图展示了 IdentityServer 和 AccountController 类的关系。并且控制器中的代码在页面渲染之前执行,以经典的典型 MVC 方式:

    如果你想拥有多个布局,那么一种选择是拥有多个 _ViewStart 文件,如下图所示:

    替代方案取决于您需要配置多少视图,您也可以随时在 layout.cshtml 文件中添加自定义逻辑。

    或者,您可以使用@section 功能根据各种因素在布局中包含不同的内容。

    这里有很多选择。

    【讨论】:

    • 但是 _template 页面是在控制器中的方法运行之前呈现的,不是吗?我想在 IFRAME 客户端时隐藏页眉和页脚。您是说我应该将它们隐藏在控制器方法中吗?管道中调用的顺序是什么?
    • 查看我的更新答案,您可以随意自定义该页面,一切尽在掌握
    • 我看到帐户控制器中的方法在 _template 中的代码之前触发,所以也许我可以通过模型传递数据。在您的图表中,我想在用户登录之前更改最左侧的对话框。所以第一个对话框看起来像你的,或者如果不同的客户,它有顶部和底部的品牌
    • 是的,这就是 MVC 的工作方式,控制器运行它的逻辑,选择要执行的视图,然后渲染视图。 Yon 可以通过在帐户控制器类中设置断点来简单地验证这一点。
    • 但是 _template 应用于每个页面,来自控制器的模型被传递给模板中呈现的“body”cshtml。我想根据客户端更改模板。我可以将头/脚放在每个 cshtml 中并显示/隐藏它们,但模板会更容易。显然每个cshtml都有自己的模型,所以你可以在模板中引用它。我想问题是可以/如何将模型传递给模板页面。或者换出控制器中的模板页面
    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多