比较HttpContext.User.Identity.Name

时间:2014-02-28 15:16:10

标签: asp.net-mvc-4

我正在尝试这个:

string username = httpContext.User.Identity.Name.ToString();
if (u.Equals(username))
{
    authorise = true;
}

域名和用户名完全相同,字母为letter,反斜杠为反斜杠,capitals为大写字母等。但变量authorize仍为false。不知道为什么。我开始怀疑是否有一种方法被认为是更好的做法。

2 个答案:

答案 0 :(得分:0)

这可能是某种不匹配。我会写一个单元测试来验证你的假设。

反斜杠可能会以不同方式进行转义。没有这些就可以尝试匹配。

function string CleanAndTrim(string user){
    var cleaned = user.Replace(@"\", "");
    cleaned = user.Replace(@"/", "")
    return cleaned.ToLower().Trim();
}

if(CleanAndTrim(u)==CleanAndTrim(username){
  authorise = true;
}

答案 1 :(得分:0)

为什么要在字符串上调用.ToString()?为什么使用if语句来设置布尔值? - 直接分配布尔值。试试这个:

string username = httpContext.User.Identity.Name;
authorise = u.Equals(username);

我现在不担心最佳做法,因为您需要首先了解基础知识。