2016-08-20 23 views
1

HomeControllerAuthorizeAttributeで作成し、AccountControllerを作成しましたが、AccountControllerというアクションにリダイレクトしていません。Mvc Authorize属性が機能していません

ホームコントローラ:

[Authorize] 
public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

アカウントコントローラ:

public class AccountController : Controller 
{ 
    [HttpGet] 
    public ActionResult Login() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Login(LogOnCustom log) 
    { 
     if(ModelState.IsValid) 
     { 
      if(Membership.ValidateUser(log.UserName,log.Password)) 
      { 
       FormsAuthentication.RedirectFromLoginPage(log.UserName, log.Isremeber); 
      } 
      else 
      { 
       ModelState.AddModelError("", "logOn error"); 
      } 
     } 
     return View(log); 
    } 
} 

web.configファイル:私はちょうどこれと同じ問題を抱えていた

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

model-view-controllerタグは、パターンに関する質問用です。 ASP.NET-MVCの実装には特定のタグがあります。 –

+0

@StephenMueckeありがとう – anitha

答えて

0

。あなたのweb.configファイルをチェックして、この行が含まれている場合を参照してください。

<system.webServer> 
    <modules> 
    <remove name="FormsAuthentication" /> 
    </modules> 
</system.webServer> 

は「<remove name="FormsAuthentication" />」の行を削除し、それが作業を開始する必要があります。 FormsAuthenticationモジュールが削除されると、401イベントをリッスンするコードはないので、ユーザーをログインページにリダイレクトする機会はありません。

関連する問題