我有一个简单的操作,它将单个参数作为字符串,它返回一个工作正常的用户个人资料页面。
然而,今天有用户告诉我,除非登录,否则没有人可以看到他的个人资料,它只是重定向到登录页面。
我检查了 IIS7 日志文件,我可以看到它正在返回 302 状态,然后加载登录页面。
这是不起作用的页面:
这是一个运行良好的示例:
动作/控制器上没有授权属性,我确实安装了 Helicon Ape 为我管理一些自定义重定向,但我已经禁用了它并且仍然得到相同的结果。
我很困惑,只有在某个个人资料上才可能导致这种情况,有什么想法吗?
编辑:
在任何级别,默认或自定义,都没有 Authorize 属性。我的 web.config 非常标准,我使用的是 MVC2:
<authentication mode="Forms">
<forms cookieless="UseCookies" enableCrossAppRedirects="true" loginUrl="~/Login" name=".ASPXAUTH" slidingExpiration="true" timeout="100000" requireSSL="false" />
</authentication>
这是我的控制器操作(控制器级别的唯一属性是 [HandleError]):
[Transaction]
[PassParametersDuringRedirect]
[ModelStateToTempData]
[HttpGet]
public ActionResult Index(string artist)
{
Account account = accountTasks.GetProfileByUsername(artist);
if (account == null)
return RedirectToAction<HomeController>(x => x.Index(), null);
var viewModel = Mapper.Map<Account, ProfilePageViewModel>(account);
return View(viewModel);
}
保罗