C# User.IsInRole(“x”)在一个ActionResult中始终为空,在另一个ActionResult中工作。为什么?
用户在第二个ActionResult中始终为空,并在第一个ActionResult中正常工作。两者都在同一个控制器中。C# User.IsInRole(“x”)在一个ActionResult中始终为空,在另一个ActionResult中工作。为什么?,c#,asp.net-mvc,C#,Asp.net Mvc,用户在第二个ActionResult中始终为空,并在第一个ActionResult中正常工作。两者都在同一个控制器中。 我能想到的唯一区别是,第一个页面是一个动态页面,而第二个特殊报告是文件夹中的静态文件 为什么会这样?有办法吗 public ActionResult Page(string it) { MVpage page = new MVpage(it); //some code if (!page.Content.Publi
我能想到的唯一区别是,第一个
页面
是一个动态页面,而第二个特殊报告
是文件夹中的静态文件
为什么会这样?有办法吗
public ActionResult Page(string it)
{
MVpage page = new MVpage(it);
//some code
if (!page.Content.Published && !User.IsInRole("Admin")) //works fine!
{
Response.StatusCode = 307;
return View("Woops");
}
return View(page);
}
public ActionResult SpecialReports(string name)
{
if (!name.Contains("pdf") && !User.IsInRole("Admin"))//Doesn't work! User==null :(
{
Response.StatusCode = 307;
return View("Woops");
}
return new FilePathResult("~/x/" + name, y);
}
用户通常设置有授权和/或身份验证筛选器。你设置正确了吗?@EmrahSüngüI没有设置过滤器,但是没有它,第一个ActionResult可以正常工作。你能链接到一个例子吗?请看一看这个问题:PS:我还认为在你的
页面(string it)
方法User
是null
。你能调试并确认吗?@EmrahSüngü感谢你的链接(以及你的帮助)。用户不为空,请参见屏幕截图您使用的是哪种身份验证类型?饼干?OpenID?OAuth2?还有别的吗?