我做了以下事情:
在VS 2012中使用Intranet模板创建MVC 4.0应用程序,打开WindowsAuthentication。 项目可以启动并显示主页。
然后我在References WebMatrix.WebData下添加并将Copy Local设置为true。
启动应用程序然后返回404错误,指示请求的URL:/login.aspx
奇怪,不是吗?
我想使用SimpleMembership Provider但是如果我甚至无法引用DLL那么这并不能说服我。
任何人都可以帮助我吗?
答案 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。
以下两个绕道工作:
通过添加类似
的内容来更改路线图 routes.MapRoute(
name: "LoginRedirect",
url: "login.aspx/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
进入路线表。
修改web.config以包含
<authentication mode="Windows">
<forms loginUrl="~/Home/Index" defaultUrl="~/Home/Index"/>
</authentication>
其中forms元素提供正确的起始页。
要么有效。后者似乎更适合我。