MVC5 如何自定义安全上下文类

冉娃娃 2015-12-26 01:20:10
环境:MVC5,Identity2.2
我要实现如下功能:
在用户登陆以后,所有页面引用同一个顶部导航。上面可以显示用户昵称,帐户余额,VIP状态等用户信息。如下图所示:


现在遇到的问题:
比如我有十个视图,都引用这个导航。十个视图是接收不同的Model。。
现在的解决方法是在每个视图对应的控制器方法里都加一个ViewBag来存储用户信息。。太麻烦了。


我看到视图里面可以直接调用上下文,显示用户名,就想为何不能直接重写这个上下文,把余额等信息包含进去呢?
如下:
@User.Identity.Name
@User.Identity.IsAuthenticated
上面两个是框架自带的

两个问题:
1,如何重写
2,余额肯定在用户操作后会变化,,框架存储的这些信息,是在每个request后都自动更新还是只在安全邮戳失效后才更新呢?
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程有钱人了 2015-12-28
  • 打赏
  • 举报
回复
引用 2 楼 qq_25768813 的回复:
[quote=引用 1 楼 wangjun8868 的回复:] 建一个公用view 每个页面引用就是了 很简单
我现在是,所有的页面都引用了这个分部视图。。。 遇到的问题是,这个分部视图里面有余额用户名VIP等信息。。。。 分部视图和引用这个分部视图的视图里引用的数据源不一样。。。 用你的话来说,我如何在公用VIEW里面,获取数据呢》?? 谢谢[/quote] 每个View 对应一个ACTION 在aciton里返回MODEL
编程有钱人了 2015-12-28
  • 打赏
  • 举报
回复
引用 5 楼 qq_25768813 的回复:
不过感觉这样在效率上还是低了一点 中间件在联结数据库的时候,已经获取了用户身份信息,相当于,我在他获取之后,又重复获取一次,,, 特别是我又在编辑用户信息的视图里面的时候,又要重复获取第三次。。。。
公共数据和每个页面不要重复调用 (例如头部就是显示一个账号 直接在cookie获得) 然后每个页面干各自的事
冉娃娃 2015-12-28
  • 打赏
  • 举报
回复
不过感觉这样在效率上还是低了一点 中间件在联结数据库的时候,已经获取了用户身份信息,相当于,我在他获取之后,又重复获取一次,,, 特别是我又在编辑用户信息的视图里面的时候,又要重复获取第三次。。。。
冉娃娃 2015-12-28
  • 打赏
  • 举报
回复
引用 1 楼 wangjun8868 的回复:
建一个公用view 每个页面引用就是了 很简单
按照你的思路已经解决了。。。之前视图引用的时候,一直是引用分部视图(所以一直没考虑传模型的问题),从来没想过引用完整的布局视图
编程有钱人了 2015-12-26
  • 打赏
  • 举报
回复
建一个公用view 每个页面引用就是了 很简单
冉娃娃 2015-12-26
  • 打赏
  • 举报
回复
引用 1 楼 wangjun8868 的回复:
建一个公用view 每个页面引用就是了 很简单
我现在是,所有的页面都引用了这个分部视图。。。 遇到的问题是,这个分部视图里面有余额用户名VIP等信息。。。。 分部视图和引用这个分部视图的视图里引用的数据源不一样。。。 用你的话来说,我如何在公用VIEW里面,获取数据呢》?? 谢谢

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧