ウェブAPIを使用してログイン機能を作成しています(n層アーキテクチャ)。 Login ControllerでNull応答を取得しています。ウェブAPIのログイン機能
まず、私はそれが私のコードのロジックであることを確認したいが正しく、それが正しいならば、なぜ私は
HttpResponseMessage response = client.GetAsync("api/Login/Login").Result;
マイプロジェクトUIログインコントローラコードで応答がnull LoginCOntroller.cs
[HttpPost]
public ActionResult Login(LoginViewModel loginViewModel)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:63465/");
HttpResponseMessage response = client.GetAsync("api/Login/Login").Result;
if (response.IsSuccessStatusCode)
{
return RedirectToActionPermanent("Index", "Project");
}
return View(loginViewModel);
}
を取得しています
マイアピログインコントローラコード LoginController.cs
public HttpResponseMessage Login(LoginViewModel loginViewModel)
{
if (ModelState.IsValid)
{
UserEntity userEntity = new UserEntity();
userEntity.Email = loginViewModel.UserName;
userEntity.Password = loginViewModel.Password;
var login = new LoginManager().LoginAuthentication(userEntity);
if (login != null)
{
return Request.CreateResponse(login);
}
}
return Request.CreateResponse(true);
}
マイログインマネージャクラス LoginManager.cs
public class LoginManager
{
public UserEntity LoginAuthentication(UserEntity userDetails)
{
var userDetail = new LoginDa().LoginAuthentication(userDetails);
return userDetail;
}
}
あなたの方法を前に付けているので、もし私のデータアクセス層は LoginDa.cs
public class LoginDa
{
public UserEntity LoginAuthentication(UserEntity login)
{
using (var context = new ArcomDbContext())
{
var loginDetail = context.userInformation.FirstOrDefault(p => p.Email == login.Email && p.Password == login.Password);
return loginDetail;
}
}
}
ルーティングコードを掲載することはできますか? – Flaugzig
これは私のRoute.configです。static static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute( "{リソース} .axd/{* pathInfo}"); routes.MapRoute( 名前: "Default"、 url: "{コントローラ}/{アクション}/{id}"、 デフォルト:new {controller = "Home"、action = "Index"、id = UrlParameter 。オプション} ); } ' –
LoginControllerの上に[Httpget]アノテーションを追加しましたか? – Flaugzig