У меня есть приложение Vue, которое аутентифицируется в Azure AD с использованием Net Core в качестве BackEnd. Я создал контроллер для предоставления некоторой базовой информации о пользователе:
List<Uservaluesfull> values = new List<Uservaluesfull>();
using (SqlConnection myConnection = new
SqlConnection(PathwayConnString))
{
SqlCommand myCommand = new SqlCommand("usp_GetUserInfo",
myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter SIDParameter = myCommand.Parameters.Add("SID",
SqlDbType.NVarChar, 100);
SIDParameter.Value = SID;
myConnection.Open();
using (SqlDataReader oReader = myCommand.ExecuteReader())
{
while (oReader.Read())
{
Uservaluesfull s = new Uservaluesfull();
s.SID = SafeGetString(oReader, "SID");
s.FirstName = SafeGetString(oReader, "FirstName");
s.LastName = SafeGetString(oReader, "LastName");
s.FullName = SafeGetString(oReader, "FullName");
s.WorkOffice = SafeGetString(oReader, "WorkOffice");
s.Department = SafeGetString(oReader, "Department");
s.WorkPhoneNumber = SafeGetString(oReader,
"WorkPhoneNumber");
s.WorkEmail = SafeGetString(oReader, "WorkEmail");
values.Add(s);
}
myConnection.Close();
}
}
return values;
}
Я называю это:
created() {
axios.get(`/api/UserValues`)
.then(response => {
// JSON responses are automatically parsed.
this.userValues = response.data
})
.catch(e => {
this.errors.push(e)
})
}
И предоставить основную информацию, которую я использую для размещения информации о пользователе в приложении,
Мои вопросы:
Если я добавлю группы в контроллер пользовательских значений, как я могу создатьСлужба, использующая эту информацию, которая будет ограничивать переход пользователей от одного маршрута к другому, если они не принадлежат к определенной группе:
Пример:
Если пользователь имеет значения UserGues.Groups = GymAdmin, имеет доступко всем компонентам, и пользователь перенаправляется на домашнюю страницу.
Если нет, пользователь перенаправляется на одну конкретную страницу и не имеет доступа для просмотра или перехода на другие маршруты.
Маршрут:
import Notifications from 'components/notifications'
import Students from 'components/students'
import HomePage from 'components/home-page'
import Athletes from 'components/athletes'
export const routes = [
{ name: 'home', path: '/', component: HomePage, display: 'Home', icon:
'home' },
{ name: 'students', path: '/students', component: Students, display:
'Students', icon: 'person' },
{ name: 'athletes', path: '/athletes', component: Athletes, display:
'Athletes', icon: 'fitness_center' },
//{ name: 'counter', path: '/counter', component: CounterExample, display:
'Reports', icon: 'bar_chart' },
{ name: 'notifications', path: '/notifications', component: Notifications,
display: 'Notifications', icon: 'list' }