2011-12-27 11 views
1

私は現在のユーザーのAD資格情報を使用してシステムにアクセスするローカルイントラネットWebアプリケーションを構築しています。mvc3 windows認証を返す401.0無許可

私のADは、Webアプリケーションにアクセスする2つのグループ(ユーザーと管理者)で構成され、2つのグループ(読み取り/実行権限)が追加されています。 IISの私のディレクトリに移動します。私のweb.configはかなり標準的で、私はGlobal.asaxファイルに追加のフィルタを持っていません。

ユーザーアカウントまたは管理者アカウントを使用している場合は私のアプリケーションにアクセスできますが、同僚はできないため、さらに複雑になります。私のアカウントには、そのフォルダに属しているグループのみがアクセス権を持ちません。

認証モードは、Windowsに設定され、残念ながら、ウェブサイトにアクセスするには、同僚などあらゆる試みは、次のように失敗している:

HTTP Error 401.0 - Unauthorized 
You do not have permission to view this directory or page. 

「最も可能性の高い原因」ボックスが示唆:

The authenticated user does not have access to a resource needed to process the request. 

私はこれを理解できません。サンプルmvc3アプリケーションを作成して同じディレクトリにデプロイすると、任意のユーザーとしてページを認証して表示できます。

答えて

2

これには多くの理由が考えられます。

  1. あなたのコントローラは、[承認(役割=「管理者」)]

    を次のように適切な許可属性で装飾する必要があなたのweb.configファイルで

  2. 、あなたはコードを次している必要があります最後に、あなたのsystem.web構成内部

    <roleManager enabled="true" defaultProvider="YourRoleProvider">

  3. ます

    [AllowAnonymous] 
    

    は(コントローラで次の行を追加します。私はMVC 4で同じ問題を抱えていた、と私はこれでそれを解決し、そのユーザーが

+0

これは休日の後のサンフランシスコまでです。私はコントローラの機能をあまりにも強くロックダウンしていました。グループをGlobal.asax内の私のAuthorizeAttributeに追加し、コントローラからAuthorizeを削除すると、すべて正常でした! – messedupfir

+0

あなたは物事を整理して得ました。明けましておめでとうございます !! :-) –

0

それぞれの役割に追加されているかどうかを確認する必要がありますこのエラーが表示された場合は、上記のアクションの上に表示されます)。

0

私はまったく同じ問題を解決するために、解決策を見つけるために頭を下げています。数時間の研究の後、この問題に対処するのは非常に簡単な方法のようです。

<system.webServer> 
    <modules> 
     <!--<remove name="FormsAuthentication" />--> 
    </modules> 
</system.webServer> 

私はデフォルトのMVCのウェブサイトを作成しながら、デフォルトで追加されたWeb.configファイル内モジュール属性から<remove name="FormsAuthentication" />ステートメントを削除すると思います。

他の誰かの時間と労力を節約したいと考えています。

関連する問題