0

请多多包涵,因为我对设计网站还很陌生。

当有人访问我的网站时,他们最初会被发送到登录页面,该页面在我的 web.config 中定义为:

<authentication mode="Forms">
  <forms loginUrl="~/Login/Index" timeout="15"/>
</authentication>

但是,在他们登录之前,我会检查他们想要访问的数据库是否已经定义(这是用户可能想要经常更改的内容),如果没有,我想将它们发送到不同的表单。所以,我的登录控制器索引看起来像:

    public ActionResult Index()
    {
        bool settingsSetUp = SupportLibrary.Settings.CompanyId != null;
        if (settingsSetUp)
            return View();
        else
            return RedirectToAction("index", "setup");

    }

然而,当我尝试这个时,我总是在 Chrome 中得到“这个页面有一个重定向循环”。该页面在 IE 的 Firefox 中也不会显示。经过调查,上述方法总是被多次调用,因此最终浏览器决定它被过于频繁地重定向。如果我只是将它设置为转到与控制器关联的视图(无重定向),它会调用上述方法 15 次。否则在 Chrome 显示错误消息之前它会被调用 10 次。有谁知道为什么它被多次调用,因为我认为这是问题的根源?非常感谢!

4

1 回答 1

2

您正在尝试加载需要对用户进行身份验证的操作(它们具有Authorize属性或已全局应用),这导致重定向回登录操作。

检查您的操作以确保在需要时无需登录即可访问它们。

于 2013-11-11T14:44:15.410 回答