Comment puis-je configurer mon mvc/webapi projet, de sorte qu'une webapi méthode est appelée à partir d'un rasoir vue ne renvoie pas le loginpage lors de son non autorisée?
Ses un MVC5 application qui a également WebApi contrôleurs pour les appels via javascript.
Les deux méthodes ci-dessous
[Route("api/home/LatestProblems")]
[HttpGet()]
public List<vmLatestProblems> LatestProblems()
{
// Something here
}
[Route("api/home/myLatestProblems")]
[HttpGet()]
[Authorize(Roles = "Member")]
public List<vmLatestProblems> mylatestproblems()
{
// Something there
}
sont appelées par la suite angulaire de code:
angular.module('appWorship').controller('latest',
['$scope', '$http', function ($scope,$http) {
var urlBase = baseurl + '/api/home/LatestProblems';
$http.get(urlBase).success(function (data) {
$scope.data = data;
}).error(function (data) {
console.log(data);
});
$http.get(baseurl + '/api/home/mylatestproblems')
.success(function (data) {
$scope.data2 = data;
}).error(function (data) {
console.log(data);
});
}]
);
Donc, je suis ne suis pas connecté et que la première méthode renvoie les données. la deuxième méthode retourne (dans la réussite de la fonction) de données qui contient l'équivalent d'une page de connexion. c'est à dire ce que vous pourriez obtenir dans mvc si vous avez demandé une action de contrôleur qui a été estampillé avec [Autoriser] et vous n'étiez pas connecté.
Je veux le retour d'un 401 non autorisé, de sorte que je peux afficher des données différentes pour les utilisateurs en fonction de si ils sont connectés ou non. Idéalement, si l'utilisateur est connecté, je veux être en mesure d'accéder au Contrôleur de la propriété de l'Utilisateur afin que je puisse revenir de données spécifiques à ce Membre.
Mise à JOUR: étant donné qu'aucune des suggestions ci-dessous semblent plus travailler (changements pour l'Identité ou la WebAPI) ive créé un raw exemple sur github qui devrait illustrer le problème.