2

我做了以下事情:

在 VS 2012 中使用 Intranet 模板创建一个 MVC 4.0 应用程序,打开 WindowsAuthentication。项目可以启动并显示主页。

然后我在 References WebMatrix.WebData 下添加并将 Copy Local 设置为 true。

启动应用程序然后返回 404 错误,指示请求的 URL:/login.aspx

奇怪,不是吗?

我想使用 SimpleMembership Provider,但如果我什至不能引用 DLL,这并不能说服我。

谁能帮帮我?

4

1 回答 1

1

MVC4 Intranet 项目模板提供了一个 web.config,其中包含:

<authentication mode="Windows" />

出于某种我不知道的原因,只需将 Microsoft ASP.Net Web Pages 2 Nuget 包添加到从 MVC 4 Intranet 项目模板生成的 Web 应用程序中就会改变整个应用程序的路由行为,这样 /login.aspx 在没有时成为默认路由指定了控制器/动作。

这是为表单身份验证定义的 defaultUrl 默认值,详见forms-Element 定义

以下两个绕过工作:

  1. 通过添加类似的内容来更改路线图

        routes.MapRoute(
            name: "LoginRedirect",
            url: "login.aspx/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    

    进入路由表。

  2. 修改 web.config 以包含

    <authentication mode="Windows">
      <forms loginUrl="~/Home/Index" defaultUrl="~/Home/Index"/>
    </authentication>
    

其中 forms 元素提供了正确的起始页。

要么工作。后者似乎更适合我。

于 2013-01-24T09:09:07.490 回答