1

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

我正在从 codeplex the 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();
        }
4

2 回答 2

5

当您需要身份验证时,它的作用与在 Web 窗体中所做的完全相同。一旦用户成功通过身份验证,就会context.User.Identity.Name包含登录人的用户名。

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

于 2013-01-09T18:41:34.933 回答
1

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

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

于 2013-01-09T18:50:59.280 回答