如何让站点根目录返回正确的页面与 ASP.NET MVC +网络表单 + ISS 6 通配符映射?

发布于 2024-09-24 09:24:37 字数 640 浏览 2 评论 0原文

目前,我正在将 Web 应用程序从 Web 表单转换为 ASP.NET MVC。该项目已转换,并且 IIS 6 已设置为带有通配符映射。我还制作了一个运行良好的 MVC 视图/控制器。但有一个问题。当访问站点根目录时,路由引擎启动并将用户重定向到默认控制器,而不是 IIS 中的默认页面设置。有没有办法让 IIS 在路由引擎启动之前使用默认页面?

如果没有...

我尝试让默认控制器将用户重定向到默认页面(LoginPage.aspx)。除了 web.config 授权似乎认为该路径未经授权之外,它可以工作,因此它重定向到看起来像 http://dev01/SampleWebApp/LoginPage.aspx?ReturnUrl=%2fSampleWebApp

如果直接转到默认控制器 (http://dev01/SampleWebApp/default/),用户将被重定向到具有正确路径的登录页面。

那么有没有办法让网站根目录绕过 web.config 授权并重定向到登录页面而不需要 ReturnUrl?

非常感谢任何帮助。

谢谢, 达伦

Currently, I'm converting a web application from web forms to ASP.NET MVC. The project has been converted and IIS 6 is setup w/ wildcard mapping. I also have made one MVC view/controller that works just fine. There is one problem though. When accessing the the site root, the routing engine kicks in and redirects the user to the default controller, instead of the default page setup in IIS. Is there a way to have IIS use the default page, before the routing engine kicks in?

If not...

I have tried to have the default controller just redirect the user to the default page (LoginPage.aspx). That works except that web.config authorization seems to think that the path is not authorized, thus it redirects to path that looks like http://dev01/SampleWebApp/LoginPage.aspx?ReturnUrl=%2fSampleWebApp

If go to the default controller directly (http://dev01/SampleWebApp/default/) the user gets re-directed to the login page with the correct path.

So is there a way to get the site root to by pass web.config authorization and redirect to the login page w/o the ReturnUrl?

Any help is greatly appreciated.

Thanks,
Darren

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉薄对峙 2024-10-01 09:24:37

在 global.asax 中的路由配置顶部:

routes.IgnoreRoute("LoginPage.aspx");

或:

routes.IgnoreRoute("/");

还没有尝试过,但这两个选项之一应该可以工作。

at the top of the routes config in global.asax:

routes.IgnoreRoute("LoginPage.aspx");

or:

routes.IgnoreRoute("/");

haven't tried it, but one of those 2 options should work.

怎言笑 2024-10-01 09:24:37

所以我的问题的解决方案是在 system.web 标签下的 web.config 中使用 url 映射:

<urlMappings enabled="true">
    <add url="~/" mappedUrl="~/LoginPage.aspx"/>
    <add url="~" mappedUrl="~/LoginPage.aspx"/>
</urlMappings>

“~/”将重定向 http://dev01/SampleWebApp/ 路径。

“~”将重定向 http://dev01/SampleWebApp 路径。

So the solution my problem was to use url mappings in the web.config under the system.web tag:

<urlMappings enabled="true">
    <add url="~/" mappedUrl="~/LoginPage.aspx"/>
    <add url="~" mappedUrl="~/LoginPage.aspx"/>
</urlMappings>

"~/" will re-direct the http://dev01/SampleWebApp/ path.

"~" will re-direct the http://dev01/SampleWebApp path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文