我正在使用MVC5和AD授权。如果没有授权,我想重定向到登录页面。因此,我在web.config中添加了一些设置,如下所示。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
但是之后。当我开始调试时。主页的URL如下所示。
这是怎么了?看来returnUrl是问题所在。有什么建议可以解决吗?
http://localhost:62435/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D%25252525252FAccount%25252525252FLogin%...................
2019/08/05
我通过设置以下步骤解决了我的问题。
来自
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
收件人
<authentication mode="None" />
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); // I've add code here filters.Add(new AuthorizeAttribute()); } }
顺便说一句,我正在使用UseCookieAuthentication。 我不了解FormsAuthentication。以及CookieAuthentication和FormsAuthentication之间的区别。
答案 0 :(得分:1)
似乎您在“帐户”控制器上的“登录”操作受到保护,也许具有Authorize
属性。未经身份验证的用户需要能够访问登录名,因此请使用AllowAnonymous
属性。
[AllowAnonymous]
public ActionResult Login()
...
您还说过您正在使用MVC,但您的web.config表单身份验证是指login.aspx。基于此-我认为只需要~/Account/Login