2

我有一个基于 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]

无论哪种方式,当我成功注销时,应用程序将我转发到注销确认,然后它需要我登录才能看到它,所以它再次将我转发到登录页面。:(

如何允许匿名用户?

4

1 回答 1

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>

但是,你为什么要匿名访问注销页面呢?这没有任何意义。

于 2013-08-26T19:54:23.620 回答