如何仅允许匿名访问网站的首页



我在 web 配置中使用以下设置来防止匿名访问我的网站。

<authorization>
  <deny users="?"/>
</authorization>

我只想允许匿名访问我的网站首页。我如何实现这一点?我正在使用ASP .NET MVC 3.5。

如果要启用对控制器/操作的匿名访问,则必须在Web.Config中启用它:

<location path="Home/Index">
  <system.web>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

对于纯 MVC 应用,更好的方法是使用 Authorization 属性并启用对 web.config 中所有用户的访问。

public void Application_BeginRequest()
{
    if (Request.AppRelativeCurrentExecutionFilePath == "~/")
        HttpContext.Current.RewritePath("/Home/Index");
}

它正在工作,我已经检查过了。

将登录 URL 设置为主页,如下所示:

<authentication mode="Forms">
    <forms loginUrl="/Home/Index" />
</authentication>

它会将匿名用户重定向到登录页面。

或者,您可以在操作中使用 AllowAnonymous 属性(主控制器中的索引操作或其所在的位置)

[AllowAnonymous]
public ActionResult Index()
{
  ...
}

最新更新