在asp.net mvc中context.User.Identity.Name的用途是什么?

本文关键字:Name 是什么 Identity User net asp mvc context | 更新日期: 2023-09-27 17:51:05

我目前正在学习asp.net mvc,我刚刚开始,我决定从web表单转移到mvc。

我正在遵循codeplex的mvc音乐商店的这个教程,有这行代码,我不明白它是如何使用的,为什么使用它。

下面是这行代码:
if(!string.IsNullOrWhiteSpace(context.User.Identity.Name))
                {
                    context.Session[CartSessionKey] = context.User.Identity.Name;
                }

我想知道context.User.Identity.Name做什么,因为我试图删除if块它包含和应用程序仍然工作。

下面是该函数的完整代码:
 public string GetCartId(HttpContextBase context)
        {
            if (context.Session[CartSessionKey] == null)
            {
                if(!string.IsNullOrWhiteSpace(context.User.Identity.Name))
                {
                    context.Session[CartSessionKey] = context.User.Identity.Name;
                }
                else
                {
                    // Generate a new random GUID using System.Guid class
                    Guid tempCartId = Guid.NewGuid();
                    // Send tempCartId back to client as a cookie
                    context.Session[CartSessionKey] = tempCartId.ToString();
                }
            }
            return context.Session[CartSessionKey].ToString();
        }

在asp.net mvc中context.User.Identity.Name的用途是什么?

当您需要身份验证时,它所做的事情与Web Forms中所做的完全相同。一旦用户成功通过身份验证,context.User.Identity.Name将包含登录用户的用户名。

在您的特定示例中,它只是检查用户是否经过身份验证-尽管您应该检查Request.IsAuthenticated而不是检查Username是否为空或空白-并将人的Username放在Session[CartSessionKey]

我建议你看看下面的链接:http://support.microsoft.com/kb/301240

在应用程序中实现安全性并学习会员资格提供者,它将使您了解角色和其他对保持应用程序安全非常有用的东西。