2015-12-30 290 views
0

我想在ASP.NETMVC5應用程序來實現Simple FormsAuthenticationFormsAuthentication重定向到登錄頁面

控制器

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語句部分的Else錯誤消息執行並寫入消息 Invalid username or password. Try again 並且再次重定向到登錄頁面。在瀏覽器中顯示的網址是:

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

任何想法,爲什麼FormsAuthentication沒有進行重定向收到正確的憑據後,「索引」視圖?

回答

1

您正在使用非哈希密碼提供它,默認哈希算法是Sha1嘗試哈希您的密碼並放置哈希的字符串。 此外,如果你不想使用加密你可以用它聲明:

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

謝謝@mahdi mahzuni。你的回答確實解決了我的問題。 – Jogi

+0

您的歡迎:D –