Я создаю новое веб-приложение ASP.NET, и я не планирую использовать концепцию «ролей». Тем не менее, я хочу, чтобы пользователь регистрировался на определенных страницах. Есть ли какой-либо существующий атрибут, который просто проверяет, зарегистрирован ли пользователь и перенаправляет ли он, или выдает ошибку, если это не так? Каждый найденный мной поиск указывает на использование ролей (например, this one).Использовать авторизованный атрибут для проверки личности пользователя, зарегистрированного в
ответ
Атрибут [Authorize]
будет успешно возвращен, только если пользователь, инициирующий запрос, войдет в систему и будет работать только на контроллерах и методах действий.
Он может быть использован для украшения определенного действия:
... или весь контроллер:
// all actions in FooController require authentication
[Authorize]
public class FooController : Controller
{
public async Task<ActionResult> FooAction()
{
}
public async Task<ActionResult> BarAction()
{
}
}
Вы также имеете Request.IsAuthenticated
, которые могут быть использованы как на действия и не- методы действия:
if (Request.IsAuthenticated) //or @if in Razor
{
//request is authenticated
}
... и даже User.Identity.IsAuthenticated
в @Darko соответ в своем ответе. Лично я предпочитаю Request.IsAuthenticated
более User.Identity.IsAuthenticated
, так как он также предоставляет некоторые полезные нулевые проверки для User
и User.Identity
. Вот как выглядит Request.IsAuthenticated
под капотом:
public bool IsAuthenticated
{
get
{
return(_context.User != null
&& _context.User.Identity != null
&& _context.User.Identity.IsAuthenticated);
}
}
Вы можете использовать свойство User, просто введите if(), где он может контролировать доступ, и все. защищен недействительным Page_Load (объект отправителя, EventArgs е)
{
if (User.Identity.IsAuthenticated)
{
Page.Title = "Home page for " + User.Identity.Name;
}
else
{
Page.Title = "Home page for guest user.";
}
}
Это должно работать после того, как вы установите web.config. Вот документация https://msdn.microsoft.com/en-us/library/9wff0kyh(v=vs.85).aspx
Проблема с вашей ссылкой - это говорит об аутентификации форм. И Framework Identity, о котором идет речь, не использует это. Хотя часть кода, где вы проверяете «IsAuthenticated», верна, остальная часть образца не указана - в MVC нет объекта «Страница» - вы говорите о WebForms, и вопрос касается не WebForms. – trailmax
Ничего больше добавить, просто вниз, потому что это не относится к вопросу пользователя, хотя это важная информация все-таки. – maniak1982
декорирования действие с '[Авторизоваться]' атрибут будет возвращать только успешно, когда пользователь вошел в систему Там также 'Request.IsAuthenticated' – trashr0x
вы можете также добавить [. Авторизовать] для всего класса. – Anonymous
Взгляните на этот вопрос http://stackoverflow.com/questions/32095889/mvc-authentication-easiest-way/32096289#32096289 Надеюсь, что это поможет. –