Asp.net mvc 4 比较HttpContext.User.Identity.Name
我正在尝试:Asp.net mvc 4 比较HttpContext.User.Identity.Name,asp.net-mvc-4,Asp.net Mvc 4,我正在尝试: string username = httpContext.User.Identity.Name.ToString(); if (u.Equals(username)) { authorise = true; } 域名和用户名完全相同,字母对字母,反斜杠对反斜杠,大写字母对大写字母等。。但变量授权仍然是错误的。不知道为什么。我开始怀疑是否有一种方法被认为是更好的实践方法。这可能是某种不匹配。我将在这里编写一个单元测试来验证您的假设 反斜杠的转义方式可能不同。你可以尝试在没
string username = httpContext.User.Identity.Name.ToString();
if (u.Equals(username))
{
authorise = true;
}
域名和用户名完全相同,字母对字母,反斜杠对反斜杠,大写字母对大写字母等。。但变量授权仍然是错误的。不知道为什么。我开始怀疑是否有一种方法被认为是更好的实践方法。这可能是某种不匹配。我将在这里编写一个单元测试来验证您的假设 反斜杠的转义方式可能不同。你可以尝试在没有这些的情况下进行匹配
function string CleanAndTrim(string user){
var cleaned = user.Replace(@"\", "");
cleaned = user.Replace(@"/", "")
return cleaned.ToLower().Trim();
}
if(CleanAndTrim(u)==CleanAndTrim(username){
authorise = true;
}
为什么要对字符串调用
.ToString()
?为什么要使用if语句来设置布尔值?--直接指定布尔值。试试这个:
string username = httpContext.User.Identity.Name;
authorise = u.Equals(username);
我现在不担心最佳实践,因为您需要先了解基本知识。问题是什么?你说它们匹配,并且它被设置为true,这是我所期望的。@dove它们匹配,但是它没有设置为true好的,你的问题是,你有权访问测试框架吗?