使用WebMatrix.WebData的VS2012 MVC 4.0 Intranet项目参考失败

时间:2013-01-17 17:17:36

标签: asp.net-mvc-4 simplemembership webmatrix-2

我做了以下事情:

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

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

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

奇怪,不是吗?

我想使用SimpleMembership Provider但是如果我甚至无法引用DLL那么这并不能说服我。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

MVC4 Intranet项目模板提供了一个web.config:

<authentication mode="Windows" />

由于某些我不知道的原因,只需将Microsoft ASP.Net Web Pages 2 Nuget Package添加到从MVC 4 Intranet Project模板生成的Web App中,即可更改整个应用程序的路由行为,使/login.aspx成为默认值没有指定控制器/操作时的路由。

这是为表单身份验证定义的defaultUrl默认值, 有关详细信息,请参阅forms-Element definition

以下两个绕道工作:

  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>
    
  3. 其中forms元素提供正确的起始页。

    要么有效。后者似乎更适合我。