0

我希望有人可以通过解决这个问题来帮助指出我的无知...... :)

我刚刚在http://www.digitalrefraction.com上安装了一个新的 DNN 站点,那里一切正常。我还有一个不相关的 ASP.Net MVC 2.0(带有无扩展名的 URL - 值得一提)应用程序在该域的子文件夹中运行,网址如下: http ://www.digitalrefraction.com/refractor

我可以对我的子应用程序执行 HTTP GET 请求。但是,当我进行 POST 时,我得到一个“需要身份验证”对话框,上面写着:“输入http://www.digitalrefraction.com的用户名和密码”。

现在我很困惑。为什么到主域的 POSTS 和 GETS 工作正常,但是当我对子应用程序执行 POST 时,我会受到主域身份验证的挑战?但是 GET 到子应用程序有效!

是的,我检查了 DNN 主站点的 web.config,根本没有发现任何授权条目。我尝试添加一些以允许匿名访问 /refractor,但这没有任何区别。还检查了我的子应用程序 web.config。我有些不知所措。

注意,我说的是子应用程序(子文件夹),而不是子域。

任何提示或想法,或直接的答案,将不胜感激。:)

谢谢。

4

1 回答 1

1

好的,感谢 Cyber​​nate,我重新审视了整个事情。本质上,我的子应用程序的登录不起作用,因此,处理 HTTP POST 并且需要安全性的控制器导致了身份验证挑战。

登录失败的原因是整个嵌套应用程序设置和从根 DNN 站点的 web.config 继承。

具体问题;该应用程序由于从根 web.config 继承的某些设置而引发错误,因此我在httpmodules<clear />等某些部分的顶部插入了一个以摆脱继承的 DNN 模块。事实证明,有一些默认加载的模块不是 DNN 的 web.config 中指定的模块。其中一些与身份验证有关。所以清除它们基本上破坏了我的登录。

最后,我没有为在 DNN web.config 中配置的每个 DNN httpmodules<clear />添加一个。通过这种方式,我摆脱了我不想要/不需要的东西,但仍然保留了我的应用程序工作所需的模块。<remove ... />

这是一个严重的痛苦,但很高兴它现在结束了!建议:远离嵌套的 ASP.Net 应用程序,除非你真的需要它们。

想想看,是不是有一个设置(全局到应用程序范围)意味着“不要从任何父应用程序/web.config 继承任何设置”?那将非常有帮助!

于 2011-01-04T05:46:26.450 回答