我有一个建立在Umbraco上的整个网站,需要限制对所有网页的访问。唯一的例外是登录页面和注销确认页面。
要限制只有已登录用户的访问权限,我在web.config中有以下内容:
<deny users="?"/>
然后,为了在注销确认页面上允许匿名用户,我在LoggedOut控制器方法的开头有以下属性:
[Umbraco.Web.WebApi.MemberAuthorize(AllowAll = true)]
public ActionResult LoggedOut()
{
var viewModel = new LogoutSuccessViewModel();
viewModel.Message = "Hello";
return View("LogoutSuccess", viewModel);
}
我也尝试了更标准的MVC使用方式:
[AllowAnonymous]
无论哪种方式,当我成功注销时,应用程序会将我转发到注销确认,然后它需要我登录才能看到它,因此它会再次转发到登录页面。 :(
如何允许匿名用户?
答案 0 :(得分:3)
您的<deny users="?"/>
文件中有web.config
。这意味着匿名用户无权访问您的应用程序。所以,当然[AllowAnonymous]
不起作用。
您需要允许匿名访问web.config
文件中的注销路径,如下所示:
<configuration>
<location path="Path to your LoggedOut Action">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>
但是,您为什么要匿名访问注销页面?这没有任何意义。