0%

Forms Authentication in MVC

今天練習在MVC4中使用Forms Authentication的驗證機制來控制登入與否的狀態,記錄一下筆記

  • 首先打開MVC的web.config找到authentication的標籤將登入頁面註冊一下 ```csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

只要在沒有登入的情況下瀏覽需要權限的頁面就會被導到/BackStage/Login,要求其登入* 接下來設定哪些action需要權限才能觀看,在MVC4中的設定方式如下
* 第一種:直接在要action上面加上[Authorize],表示該action匿名的方式無法存取
```csharp
public class ExhibitionController : Controller
{
//
// GET: /Exhibition/
[Authorize]
public ActionResult Index()
{
return View();
}
}

  • 第二種:在Controller加上[Authorize],表示所有這個controller底下的action皆需要驗證通過的狀態下才能讀取,可以在action加上 [AllowAnonymous]讓該action不用驗證

    [Authorize]//預設這個controller都要驗證過後才能讀取
    public class ExhibitionController : Controller
    {
    [AllowAnonymous]//這個action無需驗證,所有人皆能直接讀取
    public ActionResult Index()
    {
      return View();
    
    }
    public ActionResult about()
    {
      return View();
    
    }
    }
     </pre>
    
  • 驗證成功後呼叫FormsAuthentication.RedirectFromLoginPage(),告訴網站該使用者已經通過驗證。 ```csharp
    if (Acclogin.CheckPassword())
    { FormsAuthentication.RedirectFromLoginPage(Acclogin.Account, false);
    return Redirect(returnUrl);
    }