Доступность страницы, если пользователь подключен или нет.

Вопрос:

В настоящее время я работаю над сайтом с MVC5 и Identity.

У меня есть страница, доступная, когда пользователь подключен (с учетной записью), но также и когда нет. Если он подключен, я хочу отобразить некоторую информацию.

Если он не подключен, я хочу отображать меньше информации, и я хочу пригласить его войти в систему.

Я не знаю, как реализовать такую страницу. У меня есть этот контроллер:

   [Authorize]
public class PController : Controller
{
private int UserId;

public ActionResult Index(int userId ) {
UserId = Convert.ToInt32(((ClaimsIdentity) User.Identity).FindFirst("test").Value);
PModel model = new PModel(UserId);
return View(model);
}
}

и моя модель:

public class PModel {public int UserId {get; set; задавать; } }

public PModel(int userId) {

........
}

В обоих случаях я хотел бы назвать метод Index и выполнить обработку в соответствии с подключением в модели:

  public PModel(int userId) {
if(userConnected) {

} else {

}
}

Я не знаю, возможно ли это.

Лучший ответ:

Вы не делаете этого в своей модели (обычно). Если вы хотите использовать модель проверки подлинности по умолчанию, которая поставляется вместе с ASP.net, вам необходимо настроить ее в своем web.config и предоставить соответствующие действия входа/выхода из системы и т.д. В конфигурации у вас есть что-то вроде этого:

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" timeout="30" name=".MySite" protection="All"/>       
</authentication>

Атрибут Authorize вашего действия остановит запуск кода внутри этого метода, если пользователь не прошел аутентификацию. Код проверки подлинности форм перенаправляет пользователя на “loginUrl”, указанный в вашем web.config, если они попадают прямо на страницу вашего сайта без входа в систему.


Из вашего комментария я неправильно понял ваш вопрос. Вам необходимо будет удалить атрибут Authorize, а затем вы можете установить свойство userConnected модели на userConnected свойства Request.IsAuthenticated в контроллере.

Оцените статью
TechArks.Ru
Добавить комментарий