2016-04-30 10 views
0

ログインページを作成しましたが、ログインしようとしましたが、コードはjQueryを通過しました。しかし、私は正しいパスワードとユーザーIDを入力しているが、それは私に失敗を与え続ける。だから誰かが私を助けることができる?私は別のログインページでこのメソッドを試してみましたが、今度は動作しません。ストアド・プロシージャMVCとストアドプロシージャでのログイン

//ウェブAPI

[HttpPost] 
    public IHttpActionResult Login([FromBody]testLogin LoginU) 
    { 
     if(HttpContext.Current.Session["user"] != null) 
     { 
      return Ok("LoggedIn"); 
     } 
     else 
     { 
      using (Entities dbc = new Entities()) 
      { 
       LogIn_Result result = dbc.LogIn(LoginU.id, LoginU.password).FirstOrDefault<LogIn_Result>(); 
       user currentUser = null; 
       if (result != null) 
       { 
        DbSet<user> dbs = dbc.users; 
        IQueryable<user> q = from s in dbs 
              where s.id == result.id 
             select s; 
        user = q.FirstOrDefault<user>(); 
        HttpContext.Current.Session["user"] = user; 
        return Ok("/Home/Index"); 
       } 
       else 
       { 
        return Ok("Failed"); 
       } 

      } 
     } 

// jQueryの

function performLogin() { 
    var login = { 
     userid: $("#TxtUserName").val(), 
     password: $("#TxtPassword").val() 
    }; 
    var apiUrl = "/api/HomeAPI"; 
    alert(login.password); 
    alert(login.userid); 
    $.ajax({ 
     type: "POST", 
     url: apiUrl, 
     dataType: "JSON", 
     data: login, 
     success: function (result) { 
      alert(result); 
      if (result == "Failed") { 
       $("#spanMsg").html("OMG FAILLLL"); 
      } 
      else if (result == "LoggedIn") { 
       $("#spanMsg").html("Another dude logon already"); 
      } 
      else { 
       window.location.href = result; 
      } 
     } 
    }); 
} 

$(document).ready(function() { 
    $("#BtnLogin").click(function() { 
     performLogin(); 
    }); 
}); 

:あなたが何かを必要とする場合

CREATE PROCEDURE [LogIn] 
    @id int, 
    @password varchar(50) 
AS 
    SELECT * 
    FROM [dbo].[user] 
    WHERE id = @id AND password = HASHBYTES('SHA1', @password) 

はお知らせください。ユーザーのための

私のDBは、IDのみ(int)、1 FK(int)、ユーザ名(varchar)とパスワード(varbinary)を得ました。

+0

は、あなたが投稿した値を取得して変数LoginUのですか? –

+0

@ KarthikMRはい、それは私が投稿する値を取得しています。それは私に失敗メッセージを返すだけです。 –

+0

@ KarthikMR値を残して申し訳ありませんが、私はリンクが壊れているか分かりません。 –

答えて

0

performLogin()では、使用する変数はデータベースと同じである必要があります。

function performLogin() { 
var login = { 
    id: $("#TxtUserName").val(), 
    password: $("#TxtPassword").val() 
}; 

だからIDにユーザーIDを変更し、それがすでに動作します:DあなたWEBAPIのアクションメソッドで

関連する問題