2012-11-21 41 views
2

MVC的新手4.我不想做的是使用MVC 4自帶的內置帳戶管理。但是,我已創建一個帳戶文件夾下視圖,一個AccountModel和AccountController。MVC 4使用授權與自定義代碼不工作

我想要做的是限制訪問帳戶文件夾內的視圖。對於這一點,在我的AccountController,我使用以下命令:

[Authorize] 
public class AccountController : Controller 
{ 
    [AllowAnonymous] 
    public ActionResult Login(string returnUrl) 
    { 
     ViewBag.ReturnUrl = returnUrl; 
     return View(); 
    } 
    public ActionResult bob() 
    { 
     return View(); 
    }... 

在我的主頁,我有一個鏈接到鮑勃視圖下的帳戶查看現在重新路由我到登錄頁面(這是正確的)。

現在,在表單提交後,使用正確的憑據(任何事情都可以),我應該可以看到bob,但是我卻被重定向回Login,因爲我沒有被授權。代碼:

public ActionResult Login(LoginModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      return RedirectToLocal(returnUrl); 
     }... 

我不希望使用內置的連接到數據庫,而是我需要做什麼檢查用戶名與一個字符串,然後繼續授權= true,這樣我可以查看鮑勃?

從長遠來看,我打算連接到一個數據庫,並用SPROC提取信息,所以現在我只想根據檢查的字符串對用戶進行驗證。

回答

0

您將繼續被重定向,直到ASP.net看到一個Forms Authenticated cookie。

FormsAuthentication.SetAuthCookie(theUsersNameasString, boolForSessionOrPersistentCookie); 

假設你的web.config配置Forms身份驗證

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="2880" /> 
</authentication> 

ASP.Net會尋找.ASPXAUTH cookie,除非這個cookie的名字在web.config中

被改變