2013-12-06 3 views
1

, когда я пишу приложений ASP.NET Я использовал проверки подлинности форм с моей пользовательской странице входа в систему, например, так:ASP.NET MVC формы аутентификации эквивалент

После Войти является успехом я проверил его подлинности:

FormsAuthentication.RedirectFromLoginPage(userId.ToString(), true); 

Чтобы проверить, зарегистрирован ли пользователь, у меня был класс, унаследованный от базовой страницы и всех унаследованных от нее страниц, в котором содержится метод, который возвращает bool после проверки подлинности пользователя с помощью следующая команда:

return HttpContext.Current.User.Identity.IsAuthenticated; 

Теперь, я делаю приложение ASP.NET MVC, и мне было интересно, что лучше всего было сделать это на MVC?

Благодаря

ответ

1

ОК MVC очень прост и похож

для вашего вопроса, вы можете использовать как .......

в контроллере

общественного ActionResult LogOn()

{ 
     return View(); 
    } 

    // 
    // POST: /Account/LogOn 

    [HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      var userInfo = new UserInfo() 
      { 
       UserName = model.UserName, 
       Password = model.Password, 
      }; 

      var service = new CSVService(); 
      if(service.ValidateUser(userInfo)) 
      { 
       FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
       if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") 
        && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 
       { 
        return Redirect(returnUrl); 
       } 
       else 
       { 
        return Redirect("~/"); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "The user name or password provided is incorrect."); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 
+0

спасибо. имеет ли он какой-то атрибут, который может быть помещен перед ActionResult, чтобы пользователи могли его просматривать? – developer82

+0

ok для этого вы можете использовать таблицу разрешений и в соответствии с правами доступа и прав, которые вы можете применить к определенному пользователю. –

1

Лучший способ аутентификации сайта/веб-приложения использует членство, которое предоставляется Microsoft для упрощения.

Из этого можно сделать следующие вещи (функций)

  • он поддерживает журнал в состоянии (вам не придется беспокоиться о подлинности).

  • Это позволяет обеспечить роли & пользователей и назначение разрешения, которые могут видеть, какие страницы (Страница Restriction)

  • Он обеспечивает встроенный хранимые процедуры и инструменты пользовательского интерфейса, такие как вход в системе, бревенчатого-аут, пользователь, Восстановление пароля, элементы Etc. & Высокая безопасность (Hack-Proof)

для получения дополнительной информации:

Walk through Membership (MSDN)

+1

Я видел учебник по youtube об этом - создает ли он другую базу данных? – developer82

+0

Да, но он полностью зашифрован, и вы можете вызывать только предопределенные хранимые процедуры. Для ограничения страниц для конкретного пользователя/конкретного браузера вам необходимо использовать административные инструменты из вкладки «Проект» -> «Параметры ASP.NET» (эти инструменты администратора изменяют Интернет .config), который будет предоставлять и устанавливает разрешения. –

Смежные вопросы