用户登录后将自定义属性添加到ASP.NET MVC身份

6dev6il6

我正在尝试向用户身份添加项目,但是我认为这也可以通过其他方式完成。

我已经在“用户标识”中添加了一些自定义字段,但是我要尝试的是一旦用户成功登录,我就会检查是否将它们分配给多个分支(存储位置),然后为用户提供列表选择他们要显示其数据的分支。

我已经成功完成了此操作,但是现在我想将每个分支存储在用户会话/ cookie /标识中(不确定使用什么术语)。向用户显示许多复选框,一旦他们单击“保存”,我不确定该怎么做。

我需要将其保存在此函数中:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SelectBranch(params string[] branchNames)
        {

            foreach (var branch in branchNames)
            {
                //add branch to session/cookie/identity

            }

            return RedirectToAction("Index");
        }

我需要采取什么步骤才能做到这一点?

克里斯·普拉特

这取决于您的最终目标是什么。分支的选择应该是持久的还是短暂的?根据您的评论,听起来您想将其保存在当前会话中,但是让用户下次再次选择时再选择一次。如果那是您的应用程序真正需要的,那很好,但是在我看来,这样的事情应该永久保存,以便用户可以在他们认为合适时更新这些选择,或者完全临时保存,即针对当前请求,例如通过一个或多个分支过滤一组结果。

仅存储当前的浏览器会话就产生了一个问题,即用户是否会意识到他们的选择在其他视图中仍然存在,相反,他们是否会理解为什么每次返回站点时都必须不断设置分支。

也就是说,您的选择:

  • 永久-存储在用户实体上。ApplicationUserStoreBranch(或任何其他)之间添加一个M2M
  • 瞬态设置在Session

从技术上讲,您可以使用声明,但实际上并不合适。在以下情况之一时应使用声明:1)所存储的数据不适用于每个用户,或者2)所存储的数据本质上是瞬态的,但应在会话中保留下来。声明的一个很好的示例用法是存储来自Facebook之类的auth令牌。并非每个用户都一定要有一个Facebook身份验证令牌,因此这不是您想要用作数据库列的内容,并且该身份验证令牌通常存在生命周期,因此它是临时的,但即使在会话期间也仍然需要保留该令牌被摧毁了。

根据您对要实现的目标的描述,这Session是您的最佳选择,但我强烈认为,只要使用方法以后可以改变它,那么永久地保留此选择可能会有所价值。要将其保存到会话中,我实际上只是将您的字符串数组直接保存到会话中(不需要for循环):

Session["BranchNames"] = branchNames;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET MVC 5中实现自定义身份验证

是否有将自定义Javascript添加到ASP.NET MVC 5页面的正确方法?

ASP.Net MVC身份忘记密码

ASP.NET MVC身份默认实现

没有密码的ASP.NET MVC身份登录

在ASP.NET MVC 5中将自定义角色添加到Windows角色

将自定义属性添加到Firebase身份验证

将自定义验证添加到ASP.NET Core的JWT令牌中?

ASP.NET Core MVC MySQL身份

如何将自定义角色添加到ASP.NET Core

如果ASP.NET MVC中的用户匿名,则重定向到自定义Windows身份验证登录页面

自定义身份验证类型的登录页面设计:单个用户帐户ASP.NET core 2.1,MVC,c#

无法将自定义设置文件添加到Asp.Net Core 3.1 WebApi

将自定义api端点添加到ASP:Net Core模板

如何将自定义字段添加到Json结果-ASP.NET MVC

将自定义类添加到ASP.NET MVC 4中的单选按钮

如何将自定义css文件添加到asp.net mvc中?

将自定义列添加到ASP.NET Identity

asp.net mvc中不同用户类型的自定义身份验证和授权

Asp.net 5 MVC 6自定义身份验证

Asp.net Mvc身份

带有实体框架的MVC(ASP.NET身份)自定义登录状态

在ASP.NET MVC5中使用自定义登录进行表单身份验证

自定义ASP.NET MVC表单身份验证

将自定义标头添加到iframe asp.net

将 AspNetUsers 表中的自定义属性添加到 .net mvc 中的 /Manage/Index

.Net MVC - 访问自定义身份用户属性

ASP.NET MVC - 自定义身份验证不起作用

使用 keycloak 服务器进行身份验证后,将自定义字段添加到网关上的当前用户