Вход в приложение MVC3 не помнит, кто я - PullRequest
0 голосов
/ 29 июня 2011

У меня есть приложение 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 хранить пользователя в сеансе или что-то еще, чтобы он меня запомнил?

1 Ответ

1 голос
/ 29 июня 2011

Вы должны передать «true» этому:

FormsAuthentication.RedirectFromLoginPage(model.UserName, true);

Отсюда: http://msdn.microsoft.com/en-us/library/ka5ffkce(v=VS.100).aspx

userName Аутентифицированное имя пользователя.

createPersistentCookie true для создания долговременное печенье (сохраненное через сеансы браузера); иначе, ложь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...