저는 C#을 한 달 동안 사용 했으므로이 질문에 '지역성'을 용서해주십시오. 그러나 몇 시간 동안 연구했으며 벽돌 벽에 부딪 혔습니다.WPF 권한 기반 인증
내가 예 왼쪽 IIdentity
및 IPrincipal
을 사용하는 WPF 응용 프로그램을위한 역할 기반 권한 부여 바로 보았다.
그러나 더 많은 정보를 찾을 수는 없습니다. 권한 기반 인증 접근 방식으로이 응용 프로그램에는 그룹이 없으며 사용 권한 및 사용자 목록 만 있다고 가정하고 모든 사용자에게 권한을 할당 할 수 있습니다 . , 읽기 전용이 보이지 않는이 축소 (https://uiauth.codeplex.com/ 여기에서 볼 때) 사용 :
- 하는 등의 국가들과 사용자 권한에 따라 UI/요소를 제어 할 수 있어야 :
나는 수 있도록하고 싶습니다
: 은 (http://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity-based-checks/ 유사) 사용 권한이 필요한 클래스 나 메소드 레벨
대신에 지정할 수
[PrincipalPermission(SecurityAction.Demand, Permission = "Can add users")]
내가 ICommand
를 사용하고 사용자가이 있는지 문자열 비교를 많이 사용하여 CanExecute
방법으로 인증 로직을두고있다이 작업을 수행하는 방법을 볼 수있는 유일한 방법 :
내가 좋아하는 뭔가를 원하는 내가 닷컴에 충분하지 만 열거/플래그/비트를 이해 생각
// Employee class
public bool HasRight(SecurityRight right)
{
return employee.Permissions.Contains(right);
}
// Implementation, check if employee has right to continue
if (employee.HasRight(db.SecurityRights.Single(sr => sr.Description == "Can edit users")))
{
// Allowed to perform action
}
else
{
// User does not have right to continue
throw SecurityException;
}
: 필요한 권한과 같은 조치를 요청 수행하려면
가 나는 경우 ... 구현을 plete :EmployeeModel
EmployeeViewModel
을 잘 모르겠어요 모두가 함께 모두를 묶어하는 방법을 어디로 .... 여기에 지금 무슨이다 멀리 :
[Flags]
public enum Permissions
{
None = 0,
Create = 1 << 0,
Read = 1 << 1,
Update = 1 << 2,
Delete = 1 << 3,
User = 1 << 4,
Group = 1 << 5
}
public static void testFlag()
{
Permissions p;
var x = p.HasFlag(Permissions.Update) && p.HasFlag(Permissions.User);
var desiredPermissions = Permissions.User | Permissions.Read | Permissions.Create;
if (x & p == desiredPermissions)
{
//the user can be created and read by this operator
}
}
사용자 X가 그룹 X의 사용자 지정 권한을 갖기를 원할 때마다 새 그룹을 만드는 것보다 짧습니다. 역할 기반은 보스가 원하는 것입니다. –
이것은 단 하나의 멤버 만 가진 새로운 그룹이 있음을 의미합니다. 결국 당신은 다른 순열 밖으로 실행됩니다 :) – Killnine