0

asp.net (c#) を使用しています。

問題:

ユーザーが別のページからログインできるようにする必要があります。

www.mypage.com/login.aspx
www.mypage.com/orgs/org-1/login.aspx
www.mypage.com/orgs/org-2/login.aspx
www.mypage.com/orgs/org-3/login.aspx

... ここで、1、2、3 など。組織 ID。

現在、www.mypage.com/orgs/org-1/login.aspx を開くと、ユーザーは www.mypage.com/login.aspx にリダイレクトされます

全体的な話: 私がコーディングしていないアプリケーションがあります。メインのログイン ページ (www.mypage.com/login.aspx) があります。しかし、多くの異なるログイン ページもあります。すべての組織には、Orgs/Org-ID/login.aspx フォルダにある独自のログイン ページがあります。これが必要なのは、組織がログイン ページにさまざまな配色、ロゴ、追加情報、カスタムのウェルカム ステートメント、その他のカスタムのものを持ちたいからです。

以前は作業していませんでしたが、現在のスキームは次のとおりです。1) www.mypage.com/login.aspx は基本ログイン ページです。誰でもこのページからログインできます。できます。2)組織用のカスタム ログイン ページを含むファイル OrgLogin.aspx ( CodeBehind="Login.aspx.cs" !!!!に注意してください) があります。Login.aspx とは少し異なりますが、同じ CodeBehind を使用します。

3) アプリケーション管理者がアプリケーション インターフェイスから新しい組織を作成すると、OrgLogin.aspx ファイルが場所www.mypage.com/orgs/org-1/login.aspx (1 は組織 ID で、変更されます) にコピーされ、名前も変更されます。このファイルを Login.aspx にコピーします。すべての login.aspx ファイルは、組織の管理者が必要に応じてカスタマイズできます。希望しない場合は、デフォルトのページが使用されます。

これまでのところ明らかですが、次のことは機能していません: 4) ユーザーが別のページからログインできるようにする必要があります: www.mypage.com/orgs/org-1/login.aspx -> 適切なページから login.aspx を表示します。フォルダ (ルート フォルダの Login.aspx.cs は CodeBehind です) www.mypage.com/orgs/org-2/login.aspx ... 現在、www.mypage.com/orgs/org-2/login に移動すると.aspx システムは、ユーザーを www.mypage.com/login.aspx?returnurl... にリダイレクトします。

編集 フォルダの完全な構造は次のようになります: orgs/org- /login.aspx -> ルートログインにリダイレクトせずにアクセスできる必要があります orgs/org- /forgotpassword.aspx -> ルートにリダイレクトせずにアクセスできる必要があります パスワードを忘れた orgs/org - /document (フォルダー) -> 認証なしでアクセスできないようにする必要があります orgs/org- /images (フォルダー) ->認証なしでアクセスできないようにする

異なるフォルダーが 2 つしかなく、通常は異なる役割 (管理者と非管理者) を持っている場合、いくつかの解決策を読みました。たとえば、異なるフォルダーの異なる認証フォーム

しかし、これは私の場合ではありません。

4

2 に答える 2

1

orgs/org-*フォルダーにOrgLogin.aspxページのみが含まれている場合は、ファイルを配置しweb.configてページへのアクセスを許可し、リダイレクトを回避できます。このweb.configファイルの内容は

<?xml version="1.0"?>
<configuration>    
    <system.web>
        <authorization>             
            <allow users="*"/>
        </authorization>
    </system.web>    
</configuration

アップデート

特定のページを許可するには、このように場所タグを使用できます

<configuration>
   <location path="Login.aspx">
      <system.web>
         <authorization>
            <allow users="*"/>
         </authorization>
      </system.web>
   </location>       
</configuration>
于 2012-10-14T12:50:33.357 に答える
0

これにはURL書き換えを使用できます(.NET 3.5 SP1以降である限り)。あなたの流れは次の線に沿っているでしょう:

  1. www.mypage.com/orgs/org-2/login.aspxwww.mypage.com/login.aspxルート値に格納されているorg-2で書き換えられます
  2. login.aspxは、その組織のすべてのカスタム配色、ロゴなどの情報を使用してDBにクエリを実行し、ページを適切に構成します(または、ルート値が空の場合は、デフォルトが表示されます)
  3. 実際のログインコードはすべて1ページにありますwww.mypage.com/login.aspx。これにより、すべてのリダイレクトタイプの問題が回避されます。
于 2012-10-14T10:09:26.277 に答える