bug*_*ixr 3 razor c#-4.0 asp.net-mvc-3
我正在使用MVC 3和FormsAuthentication:
<authentication mode="Forms">
<forms loginUrl="~/Account/" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
我的帐户/索引页面显示一个登录页面,然后使用Jquery,它会发送一个帖子到帐户/登录来验证用户.这是我处理它的AccountController动作:
[HttpPost]
[Authorize(Users = "*")]
public ActionResult Login(string userName, string password) {
...
}
Run Code Online (Sandbox Code Playgroud)
发布的Jquery:
$.post("/account/login", {
"userName": $("#userName").val(),
"password": $("#password").val()
}, function (data) {
...});
Run Code Online (Sandbox Code Playgroud)
以上所有工作,但现在我想限制对网站的一般访问,所以我把它添加到我的根web.config:
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
为了尝试允许访问帐户控制器,我添加了这个:
<location path="~/Account">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
这是我的问题.我可以查看登录页面(帐户/索引),但我无法提交到帐户/登录.当我通过Fiddler观察正在发生的事情时,我会在发布到该页面时从服务器返回此文本:
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/?ReturnUrl=%2faccount%2flogin">here</a>.</h2>
</body></html>
Run Code Online (Sandbox Code Playgroud)
似乎当我将"〜/ Account"添加到完整的授权用户列表时,它实际上并不像在非mvc项目中那样工作.在MVC 3中有没有特殊的方法呢?
控制器的路径通常不作为相对路径引用.你应该只能说location ="Account",例如
<location path="Account">
Run Code Online (Sandbox Code Playgroud)
不能确定这是你的问题,因为我现在无法测试它,但它可能是......
| 归档时间: |
|
| 查看次数: |
3023 次 |
| 最近记录: |