2017-01-31 15 views
0

私は非常に貴重なデータをDBから表示しない、とてもシンプルなアプリケーションを扱っています。だから私は安全性についてあまり気にしない。私が必要とするのは、AuthControlを実装することです。AuthControlは、パスワードのみを要求し、あらかじめ定義された静的な文字列(コード内)と比較し、IsAuthorizedプロパティをtrueに設定します。管理者のみの単純なASP.NET MVCアプリですか?

Improtant:私はDBのユーザーを保存する必要はありません。私はどんなユーザーもいません。パスワードを知っていてCRUD操作にアクセスできる人はです。

これを実現するには[Authorize]の属性をカスタマイズする必要がありますか、より簡単な方法がありますか?

答えて

2

MVCに組み込まれたforms authenticationを使用できます。 web.configにパスワードを格納できるため、DBは必要ありません。

web.configファイル:

<system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" defaultUrl="~/" protection="None"> 
     <credentials passwordFormat="Clear"> 
      <user name="admin" password="adminpassword" /> 
     </credentials> 
    </forms> 
    </authentication> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
</system.web> 

新しいMVCプロジェクト(新しいプロジェクト] - > [ASP.NET Webアプリケーションを - > MVC)を作成する場合AccountControllerはスキャフォールドしなければなりません。 このコントローラのログインアクション:

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public ActionResult Login(LoginViewModel model, string returnUrl) { 
    if (!ModelState.IsValid) { 
     return View(model); 
    } 

    // we use simple forms authentication with a list of user in the web.config file 
    if (FormsAuthentication.Authenticate(model.UserName, model.Password)) { 
     FormsAuthentication.RedirectFromLoginPage(model.UserName, false); 
    } 
    ModelState.AddModelError("", "Wrong username or password"); 
    return View(model); 
} 
関連する問題