【问题标题】:FTP credentials needed when using RenderAction for controller method with [Authorize]将 RenderAction 用于具有 [Authorize] 的控制器方法时需要 FTP 凭据
【发布时间】:2013-10-20 14:13:28
【问题描述】:

我经常在我的视图中使用@{ Html.RenderAction("Method", "Controller"); } 来嵌入额外的内容。由于一个错误,这样的RenderAction 试图访问一个用[Authorize] 装饰的控制器,尽管用户没有登录。

然后发生了一些可怕的事情:加载页面时,浏览器打开一个表单并要求提供凭据。当您尝试访问受密码保护的目录(通过 .htaccess)时,该表单看起来就像您看到的那样。
通过反复试验,我能够登录 - 使用我的管理员 ftp 帐户的凭据。后来会员码认为我已经登录了(用户名[MachineName]\[FTPUserName]),导致了很多新的bug(因为我自己的code无法关联这个账号的用户id)。

虽然我要做的只是修复第一个错误,但我真的很想知道为什么 asp.net 的会员代码能够使用 FTP 凭据进行登录,以及为什么它一开始就尝试这样做地点。

附加信息:当我在我的个人计算机上调试程序时,并没有出现此错误,仅在我发布它的网络服务器上发生。

如果需要更多信息,请询问。

【问题讨论】:

  • 您在服务器上使用哪种authentication 模式?
  • @cem:我在哪里可以看到这个?
  • 认证模式的默认值为“Windows”,可能会导致这种情况。你可以在web.config中查看,msdn.microsoft.com/en-us/library/aa291347(v=vs.71).aspx
  • 不,我的认证方式是“Forms”:<authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication>

标签: asp.net asp.net-mvc ftp asp.net-membership authorization


【解决方案1】:

我认为这可能是因为某些静态文件(例如图像)位于并非所有人都能看到的文件夹中。 IIS_IUSRS 是否对目录服务器具有读取权限(在文件夹的属性/安全性中)?您的 FTP 设置中是否有自定义规则来保护某些文件?这应该可以解释为什么它可以在您的计算机上运行但不能在线运行。与其说是 MVC 问题,不如说是 IIS 设置问题。

【讨论】:

  • 局部视图的权限与主页的权限没有区别(可以毫无问题地访问),我没有创建任何自定义规则。局部视图甚至不包含任何图像,它仅在表格中显示一些数据。不过还是谢谢你的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 2020-07-14
  • 2014-03-21
  • 2018-11-08
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
相关资源
最近更新 更多