MVC 4使用自定义代码授权不起作用

时间:2012-11-21 18:22:27

标签: authorize

MVC新手4.我不想做的是使用MVC 4附带的内置帐户管理。但是,我在Views,AccountModel和AccountController下创建了一个Account文件夹。

我想要做的是限制对Account文件夹中的Views的访问。为此,在我的AccountController中,我使用以下内容:

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

在我的主页上,我在“帐户”视图下有一个指向bob视图的链接,现在可以将我重新路由到登录页面(这是正确的)。

现在,在表单提交后,使用正确的凭据(任何事情都可以)我应该能够看到bob,但我被重定向回登录,因为我没有被授权。代码:

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

我不想使用内置的数据库连接,而是我需要检查字符串的用户名然后保持authorization = true以便我可以查看bob?

从长远来看,我计划连接到数据库并使用SPROC提取信息,所以现在,我只想根据检查的字符串对用户进行身份验证。

1 个答案:

答案 0 :(得分:0)

您继续被重定向,直到ASP.net看到Forms Authenticated cookie。

FormsAuthentication.SetAuthCookie(theUsersNameasString, boolForSessionOrPersistentCookie);

假设您的Web.Config已配置为表单身份验证

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

ASP.Net将查找.ASPXAUTH cookie,除非在WEB.CONFIG中更改了此cookie的名称