プログラムで、私は彼らがこのような特定の役割であるかどうかに基づいて、Windowsユーザーを認証することができます:私が行う方法を見つけ出すことはできませんどのようなWindowsユーザーを一連のユーザーに対してプログラム的に承認しますか?
if(!User.Identity.IsAuthenticated)
return false;
var isAuthroized = User.IsInRole(@"DOMAIN\Some Role");
// ...
return isAuthorized;
、場合、ユーザーの名前と一致する方法でありますたとえば、個々のユーザーのリストにはアクセス権が与えられます。
ですから、通常のAuthorizeAttributeを使用してしまうようにあなたは、許可されたユーザの指定した文字列に対してユーザーを認証しようとしていると想像:
[Authorize(Users = @"DOMAIN\User1, DOMAIN\User2, DOMAIN\User3")]
public ActionResult SomeAction(){ ... }
どのようにプログラムで、ユーザーのその文字列に対してユーザーを認証しますか?
@"DOMAIN\User1, DOMAIN\User2, DOMAIN\User3"
EDIT: [OK]を、これが混乱の私のポイントです:次のように(通常AuthorizeAttributeで)宣言を持っている場合は、複数のユーザを指定のポイントは何ですか:
[Authorize([email protected]"User1,User2,User3", [email protected]"SomeRole"]
// I can do this:
User.IsInRole(roles);
// But what's the equivalent for the specified users?
User.Identity.Name.IsInNames(names); // <-- How is the done programmatically?
私はおそらくここのマークから外れていて、情報の一部が欠落しています。私を教えてください!
編集2:MVCソースは、私のためにこれをいくつか解明しました。ユーザーの存在をテストすることは、このコレクション型の非常に高速な操作であるように私は、HashSetのを使用することになり
if (_usersSplit.Length > 0 &&
!_usersSplit.Contains(user.Identity.Name, StringComparer.OrdinalIgnoreCase)) {
return false;
}
のようなユーザーは、この*は*役割を定義していませんか? –
"一連のユーザーに対してユーザーを認証しますか?"理解できません。 – capdragon
ユーザーの一覧をカプセル化する独自の役割(ユーザーに役割を注入する必要があります)と管理UIを提供します。 –