在asp.net mvc中使用context.User.Identity.Name有什么用?

时间:2013-01-09 18:35:08

标签: c# asp.net asp.net-mvc-3 visual-studio

我正在学习asp.net mvc,我刚刚开始,我决定从网页表格转移到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();
        }

2 个答案:

答案 0 :(得分:5)

当您需要身份验证时,它与Web窗体中的完全相同。用户成功通过身份验证后context.User.Identity.Name包含登录用户的用户名。

在您的特定示例中,它只是检查用户是否已经过身份验证 - 尽管您应该检查Request.IsAuthenticated而不是检查用户名是否为空或空白 - 并将此人的用户名放在{{1}中}

答案 1 :(得分:1)

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

在应用程序中实现安全性并学习成员资格提供程序,它将使您能够理解对保持应用程序安全非常有用的角色和其他内容。