AllowAnonymous
ve özel bir AuthenticationFilter
'dan yararlanmak istiyorum. Birisi bana AllowAnonymous
veya başka bir alternatif kullanmak için doğru yönde işaret edebilir mi? TeşekkürÖzel IAuthenticationFilter ve Web API'sında Allowonymous
System.Attribute
devralır ve başarıyla
public async Task AuthenticateAsync(
HttpAuthenticationContext context,
CancellationToken cancellationToken) {}
Benim sorundur AuthenticateAsync
yöntemi için mantığı eklemek mümkün olmuştur System.Web.Http.Filters.IAuthenticationFilter
public class MyCustomAuthenticationAttribute : Attribute, IAuthenticationFilter
uygulayan Kendi özel filtre oluşturduktan
Web API denetleyicimin bazı eylemlerini veya denetleyicilerini yok saymam gerekiyor. Bunu yapmak için System.Web.Http.AllowAnonymousAttribute
kullanabileceğimi düşündüm. Örneğin burada niyet gösteren gerçekten basit bir örnek.
[MyCustomAuthentication]
public class HomeController : ApiController
{
// no authentication needed allow anonymous
[HttpGet]
[Route("hianonymous")]
[AllowAnonymous]
public IHttpActionResult Hello(string name) {
return Ok(new { message = "hello " + name });
}
// needs to be authenticated
[HttpGet]
[Route("hiauthenticated")]
public IHttpActionResult Hello() {
var name = User.Identity.Name;
return Ok(new { message = "hello authenticated user " + name });
}
}
sorun Authenticate()
hala MyCustomAuthenticationAttribute
çağrıda olmasıdır. Bunu gerçekleştirmek için AllowAnonymous
veya başka bir yöntem kullanmak istiyorum. Herhangi bir girdi için teşekkürler.
Özel kimlik doğrulama özniteliğimi eylem düzeyinde ve denetleyici düzeyinde kullanamayacağımı biliyorum, ancak tüm denetleyiciyi veya genel bir filtre olarak görmek istediğim durumlar var, bu yüzden tek bir eylemde hariç tutulmam gerekiyor. veya kontrolör bazında.
Referans için, asp.net sitesinde [ASP.NET Web API 2'de Kimlik Doğrulama Filtreleri] (http://www.asp.net/web-api/overview/security/authentication-filters) örneğini kullandım Bu başladı. – Scott