3

私はウェブ設定を持っています:

<location allowOverride="true" path="Admin/Secure">
    <system.web>
      <authorization>
        <allow users="SpecificUserName1" />
        <allow users="SpecificUserName2" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

実行時にすべてのユーザー (SpecificUserName1、SpecificUserName2) を取得する必要があります。どうすればこれを達成できますか?

更新ビューでこれを行う必要があります

今、私はデフォルトのアプローチを使用しています:

@if (Request.IsAuthenticated)
{
 //secure menu
}

現在: ドメイン内のすべてのユーザーのメニューが表示されますが、web.config に存在するユーザーのみにアクセスが許可されます

必要: メニューを非表示にする/web.config に存在するユーザーを除く、ドメイン内のすべてのユーザーのアクセスを許可する

アップデート

解決策を見つけました http://forums.asp.net/t/1787320.aspx/1

UrlAuthorizationModule.CheckUrlAccessForPrincipal(Request.Url.AbsolutePath, HttpContext.Current.User, HttpContext.Current.Request.HttpMethod);
4

1 に答える 1

7

まず最初に、ASP.NET MVC アプリケーションで承認を制御するために使用しないweb.configでください。

属性を使用し[Authorize]ます。対応するコントローラー/アクションを装飾します。

[Authorize(Users = "SpecificUserName1, SpecificUserName2")]
public ActionResult Secure()
{
    ...
}

次に、これらのユーザー名を定数に外部化し、値を再利用できます。ちなみに、これらの値が必要な場所によっては、他の方法で取得することもできます。

于 2012-10-15T12:14:27.333 に答える