私はWindows認証を使用するasp.net MVC Webサイト(4.5.1)を持っています。私は特定のADセキュリティグループのユーザーにアクセスを許可しています。そのAD Secグループには、自分のSQL DBに対する読み取りアクセス権もあります。私の問題は、そのグループのユーザーが自分のサイトのルートURLにアクセスしようとすると、401アクセス拒否エラーが発生することです。ただし、ページに直接アクセスすると(ルートページが読み込まれる同じページ)、アクセスできますが、問題はありません。ユーザーがルートリンク経由で自分のウェブサイトにアクセスできないのはなぜですか?
website.com/orgbrowser - > 401エラー
website.com/orgbrowser/home - >エラーなし
website.com/orgbrowser/home/search - >エラーなし
マイrouteconfigはデフォルトで/ home/searchをロードします。管理者ユーザーにはエラーは発生せず、website.com/orgbrowserにアクセスすると、/ home/searchが正しく表示されます。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Search", id = UrlParameter.Optional }
);
}
web.configファイルで私のセキュリティのセットアップ:
<system.web>
<compilation targetFramework="4.5.1" />
<customErrors mode="Off" />
<httpRuntime targetFramework="4.5.1" />
<authentication mode="Windows" />
<authorization>
<allow roles="ADSec Group Name"/>
<deny users="*" />
</authorization>
</system.web>
私は私のルートの設定(またはどこか他の私のasp.netコード内)で何か間違ったこと、またはこれは多分あるアムIISまたはSQLのセキュリティ設定に問題がありますか?
編集:私は、ADセキュリティグループに、ウェブページを含むサーバー上のフォルダに対する読み取りアクセス許可を与えました。今それは動作します。ユーザーに明示的にその権限を与える必要がありますか?私はちょうどアプリケーションプールユーザーを追加する必要はありません、そして、Webアプリは許可を扱いますか?
ここに他のものがあるはずです。おそらくルートに 'default.aspx'や' index.aspx'ファイルがありますか? – DavidG
いいえ、それらのファイルはありません –
「ホーム」はあなたのコントローラだと思われますが、orgbrowserとは何ですか? – Krishna