У меня есть приложение MVC3, использующее NHibernate. Я создал свое собственное членство и поставщиков ролей, и они работают нормально. У меня проблема с входом в систему (вероятно, из-за неопытности с безопасностью ASP.NET). Интересно, кто-нибудь может мне помочь?
Вот мой контроллер
[Authorize(Roles="Admin")]
public ActionResult Edit(int? id)
{
...
У меня есть настройка URL для входа в систему в Web.config
<authentication mode="Forms">
<forms loginUrl="~/User/Login" timeout="2880" cookieless="AutoDetect" />
</authentication>
Итак, когда я пытаюсь щелкнуть ссылку редактирования, меня перенаправляют на страницу входа. Пока все хорошо.
[HttpPost]
public ActionResult Login(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (_membershipProvider.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.Authenticate(model.UserName, model.Password);
FormsAuthentication.RedirectFromLoginPage(model.UserName, false);
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
return View(model);
}
Затем меня перенаправляют на страницу, с которой я пришел, но когда я снова нажимаю ссылку «Изменить», меня возвращают на страницу входа. Как заставить ASP.NET хранить пользователя в сеансе или что-то еще, чтобы он меня запомнил?