1

IIS 7 以降で ASP.Net Web フォーム アプリを実行しています。現在、アプリ全体は、IIS を介して web.config で構成された Windows 認証と URL 承認を使用して保護されています。.NET はユーザーが誰であるかを気にしません。現時点では、プロファイルやロールなどはありません。

<system.web>
    <authorization>
        <remove users="*" roles="" verbs="" />
        <add accessType="Allow" roles="AppXUsers" />
        <deny users ="?" />
    </authorization>
</system.web>

ユーザーのサブセットがアクセスできるページを (サブフォルダーに) 追加したいので、web.config を次のように変更します。

<location path="mySubFolder">
<system.web>
    <authorization>
        <remove users="*" roles="" verbs="" />
            <add accessType="Allow" roles="AppXPowerUsers" />
            <deny users ="?" />
    </authorization>
</system.web>
</location>

その後、クライアントは必要に応じて自由に AD グループを追加または削除できます。ただし、現状では、AppXUsers グループに属しているが AppXPowerUsers グループに属していないユーザーには、mySubFolder 内のページへのリンクが表示されます。リンクをクリックすると、当然のことながらアクセスが拒否されます。

現在のユーザーが「mySubFolder」にアクセスできるかどうかを検出する方法はありますか?

この段階で User/RoleManagement を導入するのは少しやり過ぎだと思います。アプリケーションはユーザーに関連する情報を保存する必要がなく、ユーザーが「このページにアクセスできるかどうか」を超えて誰であるかは気にしません。これは現在 IIS の段階で処理されます。

4

1 に答える 1

1

これを見てください:http://msdn.microsoft.com/en-us/library/system.web.security.urlauthorizationmodule.checkurlaccessforprincipal.aspx

ここで参照されている: ユーザーが要求されたページにアクセスできるかどうかを確認しますか?

UrlAuthorizationModule.CheckUrlAccessForPrincipal認可ルールが設定されている必要があります<system.web><authorization>

ただし、これを web.config に導入している場合、なぜコードで使用するのをためらうのでしょうか?

確認する別の方法は次のとおりです。

Context.User.IsInRole("somerole")
于 2014-08-04T20:40:35.667 に答える