Ich frage mich, wie ich den Zugriff auf bestimmte Modelleigenschaften im OData-Controller basierend auf Benutzerrollen einschränken kann.Einschränken des Zugriffs auf eine Model-Eigenschaft von einem ODataController
Für z.B. Ich habe eine wie unten genannt Benutzerklasse:
Public class Users
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string SSN { get; set; }
}
Und ich habe ein ODataController UsersODataController genannt, wie unten:
[EnableQuery]
public IQuerable<Users> GetUsersOData()
{
return db.Users.AsQueryable();
}
Wie kann ich nur GetUsersOData Methode zurückzukehren SSN Eigenschaft machen, wenn sie von Admin Benutzer zugreifen? Ich konnte die $ Filter und $ select Funktionalität in einem normalen MVC-Controller implementieren und SSN-Eigenschaft nur für Admin-Benutzer zurückgeben. Jedoch, , wenn ich die odata URL abfragen (für z. B. http://localhost/UsersApplication/odata/UsersOData) bekomme ich alle Eigenschaften einschließlich der SSN. Ist es möglich, die Filterlogik in UsersODataController selbst anzuwenden, so dass die ODATURL die SSN-Eigenschaft nur für Admin-Benutzer zurückgibt?