मैं अपने mvc / webapi प्रोजेक्ट को कैसे कॉन्फ़िगर करूं, ताकि रेजर व्यू से बुलाई गई एक वेबपाइप विधि लॉगिन पेज को अनधिकृत रूप से वापस न करे?
इसका MVC5 एप्लिकेशन है जिसमें जावास्क्रिप्ट के माध्यम से कॉल के लिए WebApi नियंत्रक भी हैं।
नीचे दो तरीके
[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
}
निम्नलिखित कोणीय कोड के माध्यम से बुलाया जाता है:
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);
});
}]
);
इसलिए मैं लॉग इन नहीं हूं और पहला तरीका सफलतापूर्वक डेटा लौटाता है। दूसरी विधि रिटर्न (सफलता समारोह में) डेटा जिसमें एक लॉगिन पृष्ठ के बराबर होता है। यानी यदि आपको एक ऐसी कंट्रोलर एक्शन का अनुरोध किया जाता है, जिस पर आप मुहर लगाते हैं, तो आपको एमवायसीआर में मिल जाएगा।
मैं चाहता हूं कि यह 401 अनधिकृत रूप से लौटाए, ताकि मैं उपयोगकर्ताओं के लिए अलग-अलग डेटा प्रदर्शित कर सकूं या नहीं, क्योंकि वे लॉग इन हैं या नहीं। आदर्श रूप से अगर उपयोगकर्ता लॉग इन है, तो मैं कंट्रोलर की उपयोगकर्ता संपत्ति तक पहुंचने में सक्षम होना चाहता हूं ताकि मैं उस सदस्य के लिए विशिष्ट डेटा वापस कर सकूं।
अद्यतन: के बाद से सुझाव से कोई भी नीचे अब और काम करने लगते हैं (पहचान या वेबएपीआई में परिवर्तन) पर एक कच्चे उदाहरण बनाया ive GitHub जो समस्या को वर्णन करना चाहिए।