我知道如何在asp.Net webform应用程序中使用授权和身份验证属性,但我需要将我的旧网站升级到MVC 4,我是新手,并且不知道它是如何工作的。
我试图在web.config文件中全局使用它,但它没有帮助我
我对要隐藏匿名用户的内容使用了[Authorize]
属性,并使用[AllowAnonymous]
属性来允许匿名用户访问。
另外,我在web.config
文件中启用了身份验证,但我仍然没有得到任何预期的结果。
因为,当我在任何页面上应用[Authorize]
属性时,它甚至不允许经过身份验证的用户
任何帮助将不胜感激
我使用以下代码;
:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new LogonAuthorize());
filters.Add(new HandleErrorAttribute());
filters.Add(new System.Web.Mvc.AuthorizeAttribute());
filters.Add(new RequireHttpsAttribute());
}
例如,我想禁止匿名用户访问我的主页,我用过;
[Authorize]
public ActionResult Index()
{
return View();
}
在登录页面我用
[AllowAnonymous]
[HttpPost]
public ActionResult Login()
{
return View();
}
在web.config文件中我使用了
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
但是我遇到了和前面提到的相同的问题。任何有关解释的帮助都将不胜感激。
答案 0 :(得分:0)
在我看来,您拥有多个全局授权过滤器,并且您也使用了授权修饰类。什么是LogonAuthorize()
?
如果您要使用全局AuthorizeAttribute过滤器,则不要在您的课程上使用授权,并且只对您希望匿名用户访问的方法使用AllowAnonymous。
从web.config中删除所有授权元素。保留身份验证元素。
(刚刚注意到,这已经是6个月了......我怀疑你还在寻找)