2017-01-31 63 views
0

我正在處理一個非常簡單的應用程序,它只顯示來自數據庫的非常有價值的數據。所以我不太在乎安全。我唯一需要的是實現AuthControl,它僅要求密碼,將它與預定義的(在代碼中的靜態字符串)進行比較,並將IsAuthorized屬性設置爲true。簡單的ASP.NET MVC應用程序只有管理員?

improtant:我不需要保存用戶的數據庫。我沒有任何用戶。只有一個知道他的密碼並能夠訪問CRUD操作的人

我應該自定義[Authorize]屬性來達到那個還是有更簡單的方法?

回答

2

您可以使用內置於MVC中的forms authentication。它允許將密碼存儲在web.config中,因此不需要數據庫。

的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項目的AccountController應腳手架(新的工程 - > ASP.NET Web應用程序 - > MVC)。 在此控制器中的登錄操作:

[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); 
} 
相關問題