2011-10-30 4 views
0

私は、web.configファイルでこれを書いた:コントローラ内のアクションででも(MVC 3の認証)にログインしアクセスすることはできません

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

と、この:今

[Authorize] 
     public ActionResult AccountInfo() 
     { 
      return view() 
     } 

、ときに私プログラムを実行して、アカウント情報ビューにアクセスしようとすると、とてもうまくいく、そこに私を連れて来ない。しかし、私がログインしてこのビューに到達しようとしたときに、それは私にビューを許可しませんでした。何が非常に悪い...

私は認証されたのは、私のサイトへのアクセス、それらを防ぐためではありません。 どうすればアクセスできますか?

ありがとうございます。


を解決し、私はこの場所でこのようなURLを記述するために必要な:

<location path="~/en/Account/LogIn"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

代わりの<authentication> <form><location>

+0

上記の解決策は、単に誰でもアカウント/ログインにアクセスできるようにすることです。一般的に、MVCでは、このアプローチは面倒であり、すべてのセキュリティはコントローラレベルにあるべきです。あなたが[authorize]属性でログインコントローラを保護していない限り、ログインURLにどのように影響するのかわかりません。 –

+0

もちろん、ログインしていないユーザーがログインできるように、ログインコントローラを保護していませんでした。事実、これは私が知っている唯一のものです - 私はこの動きをしました。 – ParPar

+0

これは奇妙ですが、これは必須ではないため、何かが続いています。うーん.. –

答えて

0

に設定されたURLよりも優先されます使用している場合:

<location path="~/en/Account/LogIn"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

の代わり<authentication> <form>を、それを書きますin <location>

0

に書き込むorionallyこのサイトましたwebmatrixベース? WebMatrixのライブラリがあなたの参照であり、それは私がこの場所でこのようなURLを記述するために必要なweb.configファイル

+0

私のサイトは、ウェブサイトベースのウェブサイトではありません。 – ParPar

+0

もし私が/ account/loginの前に/ enを追加するだけなら、それは大丈夫です。他にも書くことができますか? – ParPar

+0

前に/ enを追加するとどういう意味ですか?〜がなければ意味はありますか? –

関連する問題