2013-12-16 4 views
2

Я знаю, как использовать атрибуты авторизации и аутентификации в веб-приложениях asp.Net, но мне нужно обновить свой старый веб-сайт до MVC 4, и я новичок в этом, Знать, как это работает здесь.Аутентификация и авторизация в веб-приложении ASP.NET MVC 4

Я попытался использовать его глобально в файле web.config, но это не помогает мне.
Я использовал атрибут [Authorize] для содержимого, которое я хочу скрыть от анонимных пользователей, и использовал атрибут [AllowAnonymous], чтобы разрешить доступ к анонимным пользователям.
Кроме того, я включаю Аутентификация в файле web.config, но все же я не получаю желаемого результата.
Поскольку, как только я применяю атрибут [Authorize] на любой странице, он просто не позволяет даже аутентифицированным пользователям.
Любая помощь будет оценена по достоинству.
Я использовал следующий код;

в Global.asax файл:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new LogonAuthorize()); 
    filters.Add(new HandleErrorAttribute()); 
    filters.Add(new System.Web.Mvc.AuthorizeAttribute()); 
    filters.Add(new RequireHttpsAttribute()); 
} 

И, например, я хочу, чтобы запретить анонимный доступ пользователя к моей домашней странице, я использовал;

[Authorize] 
public ActionResult Index() 
{ 
    return View(); 
} 

На странице входа я

[AllowAnonymous] 
[HttpPost] 
public ActionResult Login() 
{ 
    return View(); 
} 

В файле web.config я использовал

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="2880" /> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 

Но у меня такая же проблема, как я уже говорил ранее. Любая помощь с небольшим объяснением будет оценена по достоинству.

ответ

0

Мне кажется, что у вас есть несколько глобальных фильтров авторизации, и вы также используете классы, разрешенные для авторизации. Что такое LogonAuthorize()?

Если вы собираетесь использовать глобальный фильтр AuthorizeAttribute, то не используйте Authorize для своих классов и используйте только AllowAnonymous для методов, к которым вы хотите получить анонимные пользователи.

Удалите все элементы авторизации из web.config. Оставьте элемент проверки подлинности.

(только что заметил, это 6 месяцев ... сомневаюсь, что вы по-прежнему ищете)

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