2016-06-09 70 views
0

我在Azure上托管了一个简单的ASP.NET MVC5 Web应用程序,我正在使用SimpleMembershipProvider手动验证。SimpleMembershipProvider不能在Azure上工作

在我的本地机器上一切正常,但是当我尝试登录Azure应用程序时,WebSecurity.Login始终返回false。没有发生异常,并且所有UserProfiles都出现在数据库中。我试着调试我的登录方法,但是WebSecurity.Login有点黑盒子,所以我不确定它为什么返回false。

public ActionResult Login(Login loginData, string ReturnUrl) 
    {  
     if (ModelState.IsValid) 
     { 
      if (WebSecurity.Login(loginData.Username, loginData.Password)) 
      { 
       if (ReturnUrl != null) 
       { 
        return Redirect(ReturnUrl); 
       } 
       return RedirectToAction("Index", "Home"); 
      } 
     } 
     ModelState.AddModelError("", "Sorry the username or password is incorrect"); 
     return View(loginData); 
    } 
+0

你检查了这个问题吗?http://stackoverflow.com/questions/12254701/simplemembershipprovider-not-working?rq=1 – Aravind

+0

我做到了。他正在发生异常,但我的登录失败,就好像密码不正确。它必须是非常简单的东西,我错过了。 –

回答

0

经过一番研究后,我得到了它的工作。看起来,从我的开发机器接种数据库时生成的密码哈希值与服务器计算的值不同。我不确定这是为什么,但是一旦我在服务器上启动应用程序时调用CreateUser函数,而不是从开发计算机上的Update-Database启动,登录函数就开始正常工作。