Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示已登录用户的姓或名_C#_Asp.net Mvc - Fatal编程技术网

C# 显示已登录用户的姓或名

C# 显示已登录用户的姓或名,c#,asp.net-mvc,C#,Asp.net Mvc,登录应用程序时如何显示用户名 这是mvc模板附带的,但是我想根据用户名而不是用户ID来定制它 Hello , @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })! 如果需要从数据库中提取用户名,则需要以某种方式使其可供视图使用。选择包括: 将其添加到会话中 将其放入

登录应用程序时如何显示用户名

这是mvc模板附带的,但是我想根据用户名而不是用户ID来定制它

  Hello , @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!

如果需要从数据库中提取用户名,则需要以某种方式使其可供视图使用。选择包括:

  • 将其添加到会话中
  • 将其放入ViewData/ViewBag
  • 将其添加到ViewModel

  • 不知道应用程序是如何构造的,视图和控制器是如何设置的,无论这是您希望在每个页面上看到的还是仅在一个页面上看到的,很难说哪一个是最好的选择。

    用户名来自哪里?来自system.security.prinicipla.Iprincipla,它内置于MVC
    user.Identity.name中。name
    实际上是用户ID,而不是用户的(名字)。我相信是沃特·克雷格。我的问题是:你打算从哪里获得用户的名字?我的数据库,当他们登录到与他们的ID关联的应用程序并填充他们的名字时,别忘了使用cookie。这是许多网站使用的技术。你注意到当你回到一个站点时,它会记住你的名字,但是当你尝试做任何事情时,它要求你登录。。。这是因为用户名保存在cookie中。我发现使用cookie存在一些问题,这就是为什么我没有提到它。(1) 它存储在客户端,这意味着它容易被操纵(除非你加密);(2) 每次请求时,您都在网络上来回传输数据;(4) 欧盟对cookies的规定,要求用户选择不使用cookies,并披露cookies的使用情况,使得cookies成为一个大难题。由于这些原因,我喜欢将cookie的使用减少到那些我无法用其他方法解决问题的情况。谁在乎是否有人操纵用户的显示名称?如果你真的在乎,你可以像你说的那样加密它。我不认为20字节的数据是一个巨大的数据量。我认为欧盟规则适用于跨站点和跟踪cookie。事实上,每个.net网站都有几个cookie,我在欧盟认识的人中没有人披露它们。我关心这些cookie,因为一旦它们出现,我不知道其他开发人员可能会使用这些数据做什么,而现在这些数据变得不可信,因为它们来自客户端。这里有一篇文章可以帮助您理解欧盟的要求(提示,它不仅仅是跟踪cookies)。