これを試して:
web.config :
<authentication mode="Forms">
<forms loginUrl="~/Admin/LogOn" timeout="2880" >
<credentials passwordFormat="SHA1">
<user name="admin" password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8"/>
</credentials>
</forms>
</authentication>
パスワードの形式は SHA1 に設定されているため、パスワードはクリア テキストでは表示されません。それでも割れることはあります。たとえば、オンライン SHA1 ジェネレーターを使用して独自のハッシュを生成します。
loginUrl はあなたのログイン ページへのルートなので (当然 :P)、異なる場合は変更します。
CredentialsViewModel :
public class CredentialsViewModel
{
[Required]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
}
ログイン ビューのモデルを表示します。
管理者コントローラー:
public ViewResult LogOn()
{
return View();
}
[HttpPost]
public ActionResult LogOn(CredentialsViewModel model, string returnUrl)
{
if(ModelState.IsValid)
{
if(FormsAuthentication.Authenticate(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
return Redirect(returnUrl ?? Url.Action("Index", "Admin"));
}
else
{
ModelState.AddModelError("", "Incorrect username or password");
}
}
return View();
}
[Authorize]
public ViewResult Index()
{
return View();
}
そのため、LogOn アクションは、ビューから渡された資格情報を認証します。それを web.config データと比較します。
ここで重要なのは、権限のないユーザーからのアクセスを防ぐ[Authorize]属性です。