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

时间:2014-01-10 01:21:48

标签: asp.net asp.net-mvc asp.net-mvc-3

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

纯MVC应用程序的一个更好的方法是使用Authorize属性并启用对web.config中所有用户的访问。

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

我正在检查它。

答案 1 :(得分:0)

将您的登录网址设置为您的主页,如下所示:

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

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

或者您可以在Action中使用AllowAnonymous属性(Home控制器中的索引操作或任何位置)

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