【解決方法】フォーム認証に関する ReturnUrl の問題

プログラミングQA


こんにちは、みんな、
私はAsp.net 4.0 C#に取り組んでいます

ホームページのリダイレクトで問題が発生しています。
いったい何が起こっているのか
機能を備えた新しいサイトを作成しています
– フォーム認証
– カスタムロールプロバイダー
– サイトマップ (web.sitemap より)
サイトは適切に構築され、デバッグされています。
そして、私の要件は、サイトにアクセスしたときにhome.aspx(サイトのホームページ)が表示される必要があることですが、
サイトを実行しているとき、login.aspx(サイトのログインページ)にリダイレクトされ、URL は次のようになります。
“http://localhost:1552/aspx/Login.aspx?ReturnUrl=%2faspx%2fHome.aspx”

また、マスター ページには CSS が適用されず、マスター ページのコンテンツのみが表示されます。

フォーム認証のための Web.config ファイルの変更は次のとおりです。

XML
<authentication mode="Forms">
    <forms defaultUrl="~/aspx/Home.aspx"  loginUrl="~/aspx/Login.aspx"  timeout="60"/>
  </authentication>

# サイトマップの場合、Web.config の変更は次のとおりです。

XML
<siteMap defaultProvider="AspNetXmlSiteMapProvider" enabled="true">
      <providers>
        <clear />
        <add name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
     siteMapFile="web.sitemap" securityTrimmingEnabled="true"  />
      </providers>
    </siteMap>

    <authorization>
      <deny users="?" />
    </authorization>

そして、認証のために、私は2種類のユーザー1を持っています。1は管理者から、もう1つはゲストです
aspxページ用にフォルダー構造を個別に作成し、web.configでその場所を次のように指定します。

XML
<location path="aspx/_admin">
   <system.web>
     <authorization>
       <allow roles ="admin"/>
       <deny users="*"/>
     </authorization>
   </system.web>
 </location>
 <location path ="aspx/_guest" >
   <system.web>
     <authorization>
       <allow roles="guest" />
       <deny users="*"/>
     </authorization>
   </system.web>
 </location>

この問題はフォーム認証に関連しているか、web.config ファイルで指定した location タグが原因である可能性があると思います。
緊急の要件ですが、期限が短すぎます。 解決策を知っている人がいたら助けてください

解決策 1

web.config にもセクションを追加します。

XML
<location path="~/Home.aspx">
   <system.web>
     <authorization>
       <allow users="*" />
     </authorization>
   </system.web>
 </location>

コメント

タイトルとURLをコピーしました