MVCパターンを使用して行う必要のある学校向けのアプリケーションを作成しています。まず、簡単な登録とログオンページを作成して、DBに格納して取得できるかのように実行し、アプリケーションの残りの部分をかなり簡単に実行する必要があります。私は私のDBのために私の大学のSQLサーバーを使用して、ADO.NETエンティティデータモデルを使用しています(初めて)。ASP.NET MVC簡単なログオンページ、ユーザー名とパスワードが一致していますが、許可されていないメッセージが届いています
私はオンラインチュートリアルを利用していましたが、十分にうまくいくように見えましたが、今のところテーブルの詳細を使ってログオンしようとすると「Http 401.0 - Unauthorized」ページ。
は、私が知っている私は電子メール&パスワードボックスに入ってるものを私はラベルを使用してテストとしてDBから取得し、それらがすべて一致しているものをマッチングされます。私はそれが役立つ場合は、ASP.NET 4.5.2を使用しています。
私のテーブルは次のように私のコードは
Email (pk)(varchar) - For logon
Password (varchar) - For logon
First_Name (varchar)
simple-あります。
UserLogonビュー -
public class UserLogon
{
[Required]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
}
ユーザーマネージャの表示 -
public class UserManager
{
private ac9555fEntities dre = new ac9555fEntities();
public string GetUserPassword(string userEmail)
{
var user = from o in dre.UserTables where o.Email == userEmail select o;
if (user.ToList().Count > 0)
return user.First().Password;
else
return string.Empty;
}
}
アカウント・コントローラ -
public class AccountController : Controller
{
public ActionResult LogOn()
{
return View();
}
//
// POST: /Account/LogOn
[HttpPost]
public ActionResult LogOn(UserLogon model, string returnUrl)
{
if (ModelState.IsValid)
{
UserManager userManager = new UserManager();
string password = userManager.GetUserPassword(model.Email);
if (string.IsNullOrEmpty(password))
{
ModelState.AddModelError("", "The user login or password provided is incorrect.");
}
if (password == model.Password)
{
FormsAuthentication.SetAuthCookie(model.Email, false);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Welcome", "Home");
}
}
else
{
ModelState.AddModelError("", "The password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
}
ホームコントローラ -
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult Welcome()
{
return View();
}
[ログオンビュー - 私はない/あまり十分なコードが含まれている場合、私は謝罪ん
@model WebApplication5.Models.ViewModels.UserLogon
....
@using (Html.BeginForm())
{
....
@Html.EditorFor(model => model.Email)
....
@Html.EditorFor(model => model.Password)
....
<input type="submit" value="Log On" />
}
、これはMVC/ADO.NETエンティティデータモデルを使用して、私の最初の時間です。ここや他の場所の他のものを調べることで、不要な権限の追加層があるように感じましたが、私が試したソリューションのいずれかがうまく動作しませんでした。私のコードのどこに欠陥があるの?
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
ここでエラーが発生していますか? –
ブラウザでは、それはあなたが意味することですか? @StephenMuecke – ACostea
どのようなコード行が原因ですか? –