我正在尝试这个:
string username = httpContext.User.Identity.Name.ToString();
if (u.Equals(username))
{
authorise = true;
}
域名和用户名完全相同,字母为letter,反斜杠为反斜杠,capitals为大写字母等。但变量authorize仍为false。不知道为什么。我开始怀疑是否有一种方法被认为是更好的做法。
答案 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);
我现在不担心最佳做法,因为您需要首先了解基础知识。