【发布时间】: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