Не перенаправляет на следующую страницу после авторизации

<authorization><deny users="?"/></authorization>

Я сохранил приведенный выше фрагмент кода в файле web.config после аутентификации, и проблема началась. Я ввожу правильные учетные данные, но все же я не перенаправляюсь на следующую страницу после успешного входа в систему, и мой новый URL-адрес добавляется с некоторыми значениями строки запроса, это мой URL-адрес входа: http://localhost:49841/LMIT/Login После отправки формы входа с правильными учетными данными вместо перенаправления на следующую страницу он по-прежнему остается на той же странице с http://localhost:49841/LMIT/Login?ReturnUrl=%2fLMIT%2fIndex в URL-адресе.


person jairam chakravarthi    schedule 13.01.2015    source источник
comment
Вам необходимо предоставить код для метода действия входа.   -  person Imran Rashid    schedule 13.01.2015
comment
[AllowAnonymous] public ActionResult Login(Users user){ Users DbData = (из s в db.Users, где s.UserName ==user.UserName выберите s).First(); if (DbData != null) { if (user.UserName == DbData.UserName && user.Password == DbData.Password) { return Json(new {ok = true, newurl = Url.Action(/Index) }); } } else { } return View(); }   -  person jairam chakravarthi    schedule 13.01.2015
comment
поскольку я использую ajax и json, я использовал returnm json   -  person jairam chakravarthi    schedule 13.01.2015
comment
Лучше всего обновить вопрос с добавленным кодом. Так намного легче увидеть.   -  person Imran Rashid    schedule 13.01.2015
comment
Кроме того, вы можете вернуть Json, это не проблема, но вам также необходимо установить файл cookie, который сообщит ASP.NET, что пользователь аутентифицирован.   -  person Imran Rashid    schedule 13.01.2015
comment
var userCookie = новый HttpCookie(пользователь, DbData.UserId + DbData.UserName); userCookie.Expires.AddDays(7); HttpContext.Response.SetCookie(userCookie);   -  person jairam chakravarthi    schedule 13.01.2015


Ответы (1)


Хорошо, попробуйте следующий код:

[AllowAnonymous]
public ActionResult Login(Users user)
{
    Users DbData = (from s in db.Users where s.UserName == user.UserName select s).First();
    if (DbData != null)
    {
        if (user.UserName == DbData.UserName && user.Password == DbData.Password)
        {
            FormsAuthentication.SetAuthCookie(user.Id.ToString(), true);
            return Json(new { ok = true, newurl = Url.Action("/Index") });
        }
    } 
    return View();
} 
person Imran Rashid    schedule 13.01.2015
comment
у меня нет проблем с маршрутизацией, если я не использую авторизацию, если я продолжаю авторизоваться, то только я получаю сообщение об ошибке - person jairam chakravarthi; 13.01.2015