私たちのWebサイト(.net4、IIS 7.5、VS 2010、すべてかなりの在庫品)に実装されたカスタムASP.NETロールプロバイダがあります。私の質問は、ユーザーがページへのアクセスを拒否されたときの役割プロバイダーのリダイレクトを処理または代行する方法です。.netロールプロバイダのリダイレクトを処理する方法は?
私にはっきりさせてください。役割提供者が正しく機能しています。ウェブサイトのさまざまなサブディレクトリにweb.configファイルを作成し、アクセス用の適切な要素/属性を追加しました。それで、私が役割を持っていないサブディレクトリのページにアクセスしようとしているとしましょう...今、役割プロバイダは私をログインページにリダイレクトします(おそらく、メンバーシッププロバイダのweb.config値をよく)。
しかし私がやりたいことは、ログインページではなくカスタムの「アクセス拒否」ページにリダイレクトすることです。
多くのGoogle検索に基づいて、私は単純に機能しなかったいくつかのことを試しました。
例えば、ある人がカスタムApplication_Errorメソッドをglobal.asaxファイルに追加することを提案しました。それを試して、それは決してヒットしませんでした。再び
<error statusCode="401" redirect="AccessDenied.aspx" />
、働いたことはないという。
はまた、web.configファイル内のcustomErrorsセクションに追加してみました。
多くのデバッグブレークポイントを入れても、ロールプロバイダがライフサイクルの早い段階でその役割を果たし、ログインページに自動的にリダイレクトされることがわかります。
これを傍受する方法について考えていただければ幸いです。
ありがとうございました。
<forms loginUrl="login.aspx" />
私は心の中で持っている唯一の項目は、あなたがしている場合である:ユーザーがいるため、データベース内の何かのアクセス権を持っていない
は
http://stackoverflow.com/a/4664529/110164に示されている_Custom Authorize Attribute_ソリューションが役立つはずです。次に、あなたが好きな場所にリダイレクトするために 'HandleUnauthorizedRequest'を上書きすることができます。 –