RedirectToAction("Index") перенаправляет меня на страницу входа в системуC#

Место общения программистов C#
Ответить
Anonymous
 RedirectToAction("Index") перенаправляет меня на страницу входа в систему

Сообщение Anonymous »

У меня есть простое приложение ASP.NET MVC. Моя страница редактирования перенаправляется на страницу входа вместо индекса. После повторного входа в систему он правильно перенаправляется на страницу индекса. Чего мне не хватает?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(SampleVM samplevm)
{
if (!IsUserInAuthorizedRole())
{
return View("~/Views/Shared/Unauthorized.cshtml");
}

if (ModelState.IsValid)
{
samplevm.UserId = User.Identity.Name;
Sample sample = PopulateSample(samplevm);
db.Entry(sample).State = EntityState.Modified;
db.SaveChanges();

TempData["Message"] = "Sample has been updated.";

//return RedirectToAction("Edit", "Samples", samplevm.SampleId);
return RedirectToAction("Index");
}

return View(samplevm);
}

Когда я вхожу в систему, создается файл cookie. Файл cookie не изменится, пока я не нажму «Сохранить» на странице «Редактировать». Он запрашивает вход в систему, затем после входа в систему значение файла cookie обновляется.
Я не изменяю файл cookie.
// POST Create
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult SaveSamples(SampleVM samplevm)
{
bool status = false;

if (ModelState.IsValid)
{
var lotExists = SampleExists(samplevm.LotId);

if(lotExists)
{
return Json(new {
success = false
, status = status
, responseText = "LotId " + samplevm.LotId + " already exists."
}, JsonRequestBehavior.AllowGet);
}

samplevm.UserId = User.Identity.Name;

Sample sample = PopulateSample(samplevm);

db.Samples.Add(sample);
db.SaveChanges();
int sampleId = sample.SampleId;

status = true;

return Json(new {
success = true
, redirectUrl = Url.Action("Index", "Samples")
, status = status, responseText = "Sample has been saved"
}, JsonRequestBehavior.AllowGet);
}

return new JsonResult { Data = new { status = status } };
}

// POST Edit
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(SampleVM samplevm)
{
if (ModelState.IsValid)
{
samplevm.UserId = User.Identity.Name;
Sample sample = PopulateSample(samplevm);
db.Entry(sample).State = EntityState.Modified;
db.SaveChanges();

TempData["Message"] = "Sample has been updated.";

return RedirectToAction("Index");
}

return View(samplevm);
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... login-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»