2013-02-22 3 views
0

, поэтому я начал создавать веб-сайт в MVC 4 с шаблоном, и все шло хорошо. Но я чувствовал, что в шаблон уже добавлено множество функций, которые я не понял ни малейшим, и поэтому было сложно использовать некоторые из этих функций должным образом. Одной из таких функций является система входа в систему.Как настроить логин? Forms Authentication

Теперь мне удалось установить и поговорить с моей внешней базы данных без многих неприятностей, но я/нахожусь в полной растерянности относительно того, как шаблон знает имена пользователей и что он вошел в систему.

Так Я пытаюсь воссоздать/настроить ту же функциональность, но с нуля, чтобы я мог понять, как это работает. Это сказано ... Я потерян!

[AllowAnonymous] 
public ActionResult Login(LoginModel model) 
{ 
    try 
    { 
     var canLogin = Services.Login(model.Username, model.Password); 
     var cas = Services.CheckAcountStatus(canLogin.Token); 

     if (cas.Payload.Items.Exists(m => !m.IsSynchronized)) RedirectToAction("VerifyPin", "Account", cas.Payload); 

     return RedirectToAction("Index", "MyPage"); 
    } 
    catch (CustomException ase) 
    { 
      ModelState.AddModelError("", ErrorCodeToString(ase.Error)); 
    } 

     return View(model); 
} 

Это то, что у меня есть до сих пор.

<authentication mode="Forms"> 
    <forms name="MyName" loginUrl="~/Account/Login" timeout="30" /> 
</authentication> 

Много примеров есть объяснения создания базы данных с помощью EF и такие, но я боюсь, что это equivelant к моей внешней базе данных.

Действительно ли база данных необходима, если пользователь вошел в систему? или это скорее всего лишь печенье?

Помимо этого, я не знаю, куда идти. Если бы кто-то мог хотя бы указать мне в хорошем направлении, я был бы признателен.

В конце концов моя единственная реальная цель состоит в том, чтобы иметь простой способ для связи между страницами, которые пользователь зарегистрирован в системе

ответ

0
if (Request.IsAuthenticated) 
     { 
      // Lets us know if the Request is authenticated 
     } 

Простой ответ:. «В конце концов, моя единственная реальная цель состоит в том, чтобы имеют простой способ для обмена сообщениями между страницами, в которые пользователь вошел в систему ».

Я бы предложил прочитать параметры конфигурации для проверки подлинности форм в web.config, а также изучить внутреннюю работу билета формы. MVC также имеет атрибут авторизации, который вы можете использовать.

http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute(v=vs.108).aspx

+0

После небольшого улучшения поиска мне удалось создать новый пользовательский атрибут Authorize, который соответствует моим потребностям, а также FormsAuthentication. – Zholen

0

ASP.NET MVC 4 введен новый поставщик членства под названием SimpleMemberhsip, который является очень гибким и простым в использовании. Вот article that shows you how to customize SimpleMembership, который может быть лучшим для вас, вместо того, чтобы пытаться создать структуру безопасности с нуля, совместимую с аутентификацией форм ASP.NET. Аутентификация форм использует файлы cookie, чтобы указать, зарегистрирован ли пользователь на разных страницах. Я не вижу ничего в вашем примере кода, который обрабатывает файлы cookie. Если вы посмотрите на метод Login, созданный шаблоном Интернета, вы увидите, что метод WebSecurity.Login не только обрабатывает аутентификацию пользователя, но также обрабатывает генерацию файла cookie.

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