Asp.net

如何使用只有一個使用者的 asp.net mvc 項目

  • August 19, 2013

我正在做一個在公司中使用的項目。系統將只有 1 個管理員帳戶。

管理員將添加系統使用者,每個使用者都可以創建自己的聯繫人。

我創建了一個用於連接數據庫的 WCF 服務、一個用於管理員的 asp.net mvc3 項目以及另一個用於系統使用者的 WPF 應用程序。

我的問題是:

我只有一個使用者(管理員)可以使用這個 asp.net mvc 項目登錄:我該如何處理這種情況?

我認為不需要會員提供者和數據庫,因為我只與一個使用者合作,對嗎?

嘗試這個:

網路配置

<authentication mode="Forms">
 <forms loginUrl="~/Admin/LogOn" timeout="2880" >
   <credentials passwordFormat="SHA1">
     <user name="admin" password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8"/>
   </credentials>
 </forms>
</authentication>

密碼格式設置為 SHA1,因此您的密碼不會以明文形式顯示。不過還是可以破解的。例如,使用線上 SHA1 生成器生成您自己的雜湊。

loginUrl 是您的登錄頁面的路由(duh :P),所以如果它不同,請更改它。

憑據視圖模型

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 $$屬性將防止未經授權的使用者訪問。

引用自:https://stackoverflow.com/questions/10663475