1

私の最初の質問は、デフォルトの AuthorizeAttribute ではなく呼び出すことができるように、このカスタム拡張機能をどこに配置すればよいかということです。

現在、MVC ソリューション内にすべてのビジネス ロジックを含む新しいプロジェクトを作成しています。ロジック プロジェクト内に、すべてのセキュリティ クラスを含む .cs ファイルがあります。そのファイルに拡張クラスを追加しようとしましたが、コントローラーで、クラスが問題なく表示され、属性を追加してもインテリセンスが吠えませんが、コンパイルしようとすると、型または名前空間のエラーが発生します見つかりませんでした。コンパイルするには、カスタム属性を特別な場所に格納する必要がありますか?

2 番目の質問...最初の質問に関連している可能性があります。AuthorizeAttribute から AuthorizeCore メソッドをオーバーライドしようとしているときに、System.Web.HttpContextBase を httpcontext として渡しています。何らかの理由で、Visual Studio は System.Web.HttpContextBase を解決できません。繰り返しますが、これは、このクラスをソリューションに保存した場所に関連している可能性があります。それとも、これを拡張するために dll をどこかにインポートする必要がありますか?

お知らせ下さい。

4

2 に答える 2

0

それは私のために働く、私はこれがあなたを助けることを願っています.

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

}
于 2015-12-08T05:34:49.853 に答える
0

私の知る限り、Web サイトでプロジェクトを適切に参照している限り、クラスは任意のクラス ライブラリ プロジェクトに含めることができます。プロジェクトを再コンパイルしてみてください。ソース ファイルは見つかったようですが、コードが DLL にありません。

おそらく、System.Web.Abstractions への参照をプロジェクトに追加する必要があります。「基本」クラスは System.Web 名前空間にありますが、別の DLL にあります。

于 2010-01-11T17:18:17.943 に答える