Я делаю простой пользовательский веб-проект регистрации. Всякий раз, когда я добавляю [Authorize] в контроллер и впоследствии создаю из него представление, при запуске кода он выдает HTTPS 401.0 Unauthorized Error. Если я удалил его, он запускается, но не дает желаемого результата.
В моем Account Controller
у меня было следующее:
[HttpPost]
public ActionResult SignUp(UserSignUpView USV)
{
if (ModelState.IsValid)
{
UserManager UM = new UserManager();
if (!UM.IsLoginNameExist(USV.LoginName))
{
UM.AddUserAccount(USV);
FormsAuthentication.SetAuthCookie(USV.FirstName, false);
return RedirectToAction("Welcome", "Home");
}
else ModelState.AddModelError("", "Login Name already taken.");
}
return View();
}
В моем Home
контроллере яимел это:
namespace MVC5FileRealWorld.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult Welcome()
{
return View();
}
}
}
Я создал представление, добавив представление правой кнопкой мыши на Welcome()
Ниже мой класс Welcome
:
@{
ViewBag.Title = "Welcome";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Hi <b>@Context.User.Identity.Name</b>! Welcome to my first MVC 5 Web App!</h2>
Послепользователь успешно зарегистрирован (т.е. данные успешно сохранены в базе данных),
Должно отобразиться «Привет XXX! Добро пожаловать в мое первое веб-приложение MVC5! '
Но теперь, если я добавил [Authorize] и сгенерировал представление, он просто отобразит ошибку HTTP 401.0. Если я удалю [Authorize] и восстановлю другой вид (с тем же именем, что и у предыдущего), он просто отобразит «Привет! Добро пожаловать в мое первое веб-приложение MVC5! Эта строка кода @Context.User.Identity.Name
просто не работает и для последнего случая.