4

私は C# と asp.net の世界が初めてです。だから私がしようとしている質問はかなり不自由かもしれませんが、皆さんが私に耐えてくれることを願っています:)。わかりましたので、本を読んで、asp.net内で認証と承認がどのように行われるかの基本を理解していました。

これで、web.config 内で次のように認証と承認を定義しました。

<authentication mode="Forms">
  <forms loginUrl="~/Home/LogOn" protection="All" path="/" timeout="30" name="MyCookies" />
</authentication>
<authorization>

  <deny users="?"/>
  <allow users="*"/>

</authorization>

次に、ログインフォームを作成しました。それは次のとおりです。

<form method="post" action="../Home/LogUser">
<fieldset>

<legend>Log On</legend>
<p>User Name</p>
<p><input type="text" name="txtUserName" id="txtUserName" size="30"/></p>

<p>Password</p>
<p><input type="password" name="txtPassword" id="txtPassword" size="30"/></p>

<p><input type="submit" name="btnSubmit" value="Log On"/></p>
</fieldset>
 </form>

私の問題は、web.config で匿名ユーザーを拒否するように定義したため、コントローラーに送信するフォームを送信しようとすると、ログイン ページに戻ってくることです。この状況をどのように処理しますか? 多分私はasp.netのパラダイムのログ全体を理解しています。その場合、その点についての説明を謙虚に感謝します。

4

1 に答える 1

3

asp.net へようこそ。特に MVC フレームワークが気に入っています。あなたがすることを願っています。

おすすめポイント多数

1) MVC フレームワークを使用している場合、このアプローチはお勧めできません。はるかに優れたアプローチは、[Authorize]認証されていないユーザーに対して閉じたいコントローラーやメソッドに属性を適用することです。

このアプローチにより、ユーザーが匿名で移動できる場所、認証された場所、および特定のロールのみが移動できる場所を非常に柔軟に決定できます。[Authorize(Roles="Admin")]

2) web.config の設定と認証場所を続行する場合は、ユーザーが特定の場所にアクセスできるようにするには、このコードを web.config に追加します。

<location path="~/Home/">
  <system.web>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
</location>

3) あなたの質問から私が理解できないのは、あなたの意図でした。ユーザーがログインできるようにする場合は~/Account/Logon、ログオンフォームを開いて、そこに (理想的には) 投稿する必要があります。

于 2013-01-26T04:41:31.053 に答える