2015-12-30 2 views
0

Я пытаюсь реализовать Simple FormsAuthentication в ASP.NETMVC5 применения в качестве:FormsAuthentication перенаправляет на страницу входа

контроллер

public ViewResult login() 
{ 
    return View(); 
} 

[HttpPost] 
public ViewResult login(Login login) 
{    
    if (ModelState.IsValid) 
    { 
     if (FormsAuthentication.Authenticate(login.username, login.password)) 
     { 
      FormsAuthentication.RedirectFromLoginPage(login.username, false);     
     } 
     else 
     { 
      Response.Write("Invalid username or password. Try again"); 
      return View(); 
     } 
    } 
    return View("Index");    
} 

Web.Config

<appSettings> 
    <add key="owin:AutomaticAppStartup" value="false"/> 
</appSettings> 
<system.web>  
    <authentication mode="Forms"> 
      <forms 
       name="PC" 
       loginUrl="~/Home/login" 
       timeout="2"> 
      <credentials> 
       <user name="admin" password="admin1"/> 
      </credentials> 
    </forms> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 
</system.web> 

Теперь, когда я поставлю правильный учетные данные, как указано в файле Web.Config, сообщение об ошибке из строки Else, содержащее PostHttp login ViewResult, выполняет и записывает сообщение Invalid username or password. Try again и перенаправляет страницу входа еще раз. URL отображается в браузере:

http://payroll.net:81/Home/login?ReturnUrl=%2f

Любая идея, почему FormsAuthentication не перенаправляет на «Index» View после получения правильных учетных данных?

ответ

1

Вы поставляете его с unhashed Password, алгоритм Хеширования по умолчанию - это попытка Sha1 Хеширование вашего пароля и установка хешированной строки. Кроме того, если вы не хотите использовать шифрование вы можете указать это с:

<credentials passwordFormat = "Clear"> 
    <user name="UserName" 
    password="SimplePass"/> 
    </credentials> 
+0

Спасибо @mahdi mahzuni. Ваш ответ разрешил мою проблему. – Jogi

+0

Ваше приветствие: D –

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