我在 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()
{
...
}