OWİN: izinsiz webapi Ara giriş sayfası döndürmek yerine 401
Nasıl webapi bir yöntem jilet gibi bir görünüm aradı onun yetkisiz zaman loginpage dönüş yok ki mvc/webapi projem yapılandırabilirim?
Ayrıca javascript üzerinden aramalar için WebApi denetleyicileri olan bir MVC5 uygulanması.
İki yöntem aşağıda
[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
}
aşağıdaki açısal kodu) denir:
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);
});
}]
);
Açmış değilim ve ilk yöntem başarılı bir şekilde veri döndürür. İkinci yöntem (başarı işlevi) giriş sayfasına eşdeğer içeren veri döndürür. eğer denetleyici bir eylem talep edilmesi halinde mvc almak istiyorsunuz ne yani damgalı [Yetki] ve giriş değildin.
Kullanıcı eğer giriş ya göre, farklı veri görüntüleme o bir 401 yetkisiz dönmek istiyorum. Eğer kullanıcı giriş yapmış ise ideal veri Üyesi için özel iade edebilirim o yüzden kumandanın Kullanıcı özelliği erişmek mümkün olmak istiyorum.
Artık çalışmıyor gibi görünüyor aşağıda öneriler (Kimlik veya WebAPİ değişiklik) ive hiçbiri sorunu göstermek gerekir github ham bir örnek oluşturduk. GÜNCELLEME:
CEVAP
Brock Allen Tanımlama bilgisi kimlik doğrulaması ve OWİN kullanırken ajax aramalar için 401 dönmek ne kadar güzel bir blog yazısı var. http://brockallen.com/2013/10/27/using-cookie-authentication-middleware-with-web-api-and-401-response-codes/
Başlangıç ConfigureAuth yöntemi.Auth.cs dosyası:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnApplyRedirect = ctx =>
{
if (!IsAjaxRequest(ctx.Request))
{
ctx.Response.Redirect(ctx.RedirectUri);
}
}
}
});
private static bool IsAjaxRequest(IOwinRequest request)
{
IReadableStringCollection query = request.Query;
if ((query != null) && (query["X-Requested-With"] == "XMLHttpRequest"))
{
return true;
}
IHeaderDictionary headers = request.Headers;
return ((headers != null) && (headers["X-Requested-With"] == "XMLHttpRequest"));
}
Nasıl Doxygen ile bir giriş sayfası ya...
Bir nesne, sabit bir referans döndürme...
Yükleme Java wget ile Linux üzerinde y...
Nasıl TÜM özel durumları genel# MVC4 C...
Verir giriş ec2-user kullanıcı olarak ...