NTLM 認証を使用するイントラネット認証を作成できることがわかりました。それはほとんど私が必要とするものです。さらに、ユーザーが AD の指定されたグループに属していることも確認する必要があります。
これを行う簡単な方法はありますか?これは、非常に小さな Web アプリケーション用です (開発に 8 ~ 10 日かかります)。
ありがとうございました
NTLM 認証を使用するイントラネット認証を作成できることがわかりました。それはほとんど私が必要とするものです。さらに、ユーザーが AD の指定されたグループに属していることも確認する必要があります。
これを行う簡単な方法はありますか?これは、非常に小さな Web アプリケーション用です (開発に 8 ~ 10 日かかります)。
ありがとうございました
グループを確認するパラメーターを使用して、問題のコントローラーに Authorize 属性を追加できます。
例えば
[Authorize("mydomain/admin")]
public class MyController : Controller
{
}
Web サイトでも Windows 認証を有効にする必要があります。
HTH
シ
var ctx = new PrincipalContext(ContextType.Domain);
var userPrincipal = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userName);
var groups = userPrincipal.GetGroups();
ここには、現在のユーザーが関連付けられているすべての第 1 レベルのグループがあります。第 1 レベルのグループが含まれるグループのように、より深くチェックしたい場合は、グループ グラフ全体を反復処理する再帰関数を記述する必要があります。
var ctx = new PrincipalContext(ContextType.Domain);
var groupPrincipal = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, childGroup.SamAccountName);
var currentLevelGroups = groupPrincipal.GetGroups();
これらの 3 行を使用して、指定したグループの親グループを取得できます。
特定のグループが収集されたグループの一部であるかどうかをすべてのステップで確認できます。そうであれば、ブレークして true を返します。