2014-01-10 7 views
1

Я использую следующие настройки в веб-конфигурации, чтобы предотвратить анонимный доступ к моему сайту.Как разрешить анонимный доступ только к главной странице веб-сайта?

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

Я хочу разрешить анонимный доступ только на первую страницу моего сайта. Как мне это достичь? Я использую ASP.NET MVC 3.5.

ответ

1

если вы хотите разрешить анонимный доступ к контроллерам/действий, которые вы должны включить его в вашем web.Config:

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

лучший подход для чистого приложения MVC, чтобы использовать атрибут Авторизовать и разрешить доступ всем пользователям в web.config.

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

Это работа, я проверил это.

+0

Это не сработает. Если я положу путь к «Главная/Индекс», он позволит www.foo.com/home/index, а не www.foo.com. – RWendi

+0

просто попробуйте с этим пользовательским атрибутом..http: //blog.tomasjansson.com/securing-your-asp-net-mvc-3-application – Nilesh

+0

@RWendi проверить отредактированный ответ – Nilesh

0

Установите URL для входа на главную страницу, как это:

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

Это будет перенаправлять анонимных пользователей на страницу входа в систему.

Или вы можете использовать AllowAnonymous атрибут в вашем действии (действие Index в главном контроллере или там, где он находится)

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

Как это решение моей проблемы? Я хочу разрешить анонимным пользователям мою первую страницу. не перенаправлять их на страницу входа. – RWendi

+0

вы заменяете URL-адрес страницы входа с URL-адресом вашей домашней страницы, поэтому ваша домашняя страница становится вашей страницей входа. –

+0

Но я не хочу, чтобы моя домашняя страница была моей страницей входа. :) – RWendi

Смежные вопросы