ここにいくつかの背景があります!
デフォルトのイントラネット テンプレートを使用して小さな Asp.Net MVC 4 イントラネット サイトを開発し、Windows Authentication
. Web Api Controller
また、サイトのページから JQuery を使用してアクセスするいくつかの REST サービス メソッドを追加して記述しました。には次のWeb.Config
ものが含まれます。
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
サイトは正常に機能しており、ユーザーWindows Credentials
はサイトにアクセスするためにそれらを提供する必要があります.
問題
Windows API controller
また、ネットワーク上の別のコンピューターで実行され、前の手順で作成した のアクションの1 つにアクセスする Windows サービスを開発しています。ここでの問題はWindows Credentials
、Windows サービス内から RESTful API メソッドを提供できないことです...ユーザーがそのシステムを使用しない可能性があるため...私が意味することを理解してください:
私は何を試しましたか
- Web プロジェクトのプロパティで許可
Anonymous Authentication
されています。True
次にAllowAnonymous
、Web API メソッドで属性を使用しました。動作しませんでした。 AuthorizationFilterAttribute
Window Service からアクセスされる API メソッドにのみ適用される別のメソッドを作成しないでください。このようにして、新しい機能が既存のWindows Authentication
機能を上書きし、Windows サービスからのみ使用される BASIC 認証用に選択したユーザー名/パスワードを提供できるようになります。そこで、 Rick Strahl のブログのAuthorizationFilterAttribute
助けを借りて、新しいクラスを作成しました。[AllowAnonymous] [AuthorizeCallFromWindowsService] public IssueResponse CloseEmployeeLicenses(int userID) { return null; }
繰り返しますが、これは機能しませんでした。API メソッドには同じ Windows 認証資格情報が必要であり、ハードコードされたカスタムのユーザー名/パスワードを使用したいと考えています。
何を提案しますか?前もって感謝します。