我正在学习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();
}
答案 0 :(得分:5)
当您需要身份验证时,它与Web窗体中的完全相同。用户成功通过身份验证后context.User.Identity.Name
包含登录用户的用户名。
在您的特定示例中,它只是检查用户是否已经过身份验证 - 尽管您应该检查Request.IsAuthenticated
而不是检查用户名是否为空或空白 - 并将此人的用户名放在{{1}中}
答案 1 :(得分:1)
我建议你看一下以下链接: http://support.microsoft.com/kb/301240
在应用程序中实现安全性并学习成员资格提供程序,它将使您能够理解对保持应用程序安全非常有用的角色和其他内容。