अनदेखी मैं एक CustomApiAuthorizeAttribute है:कस्टम एपीआई अधिकृत AllowAnonymous
public class CustomApiAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext == null)
throw new ArgumentNullException("actionContext");
bool skipAuthorization = actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any() ||
actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();
if (skipAuthorization) return;
var cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie != null)
{
var decCookie = FormsAuthentication.Decrypt(cookie.Value);
if (decCookie != null)
{
if (!string.IsNullOrEmpty(decCookie.UserData))
{
HttpContext.Current.User = new CustomPrinciple(new CustomIdentity(decCookie));
return;
}
}
}
HttpContext.Current.Items["RequestWasNotAuthorized"] = true;
HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName) { Expires = DateTime.Now.AddDays(-1d) });
HandleUnauthorizedRequest(actionContext);
}
}
और मैं एक नियंत्रक है:
[CustomApiAuthorize]
public class RacingController : CustomApiController
{
[HttpGet]
[AllowAnonymous]
public Venues Venues()
{
var asr = Services.GetVenues(Token);
if(!string.IsNullOrEmpty(Token))
SetAuthTicket(asr.Token);
return asr.Payload;
}
}
जब इस कार्रवाई फोन करने की कोशिश कर रहा एक 401 अनधिकृत त्रुटि प्राप्त हो रही। डिबगिंग मुझे बताता है कि Authorizeattribute [AllowAnonymous] की उपस्थिति का पता नहीं लगा रहा है लेकिन मुझे समझ में नहीं आता क्यों।
क्या कोई भी देख सकता है कि मैं क्या गलत कर रहा हूं? या कोई विचार है कि कुछ और विरोधाभासी हो सकता है?
दो अनुमति दें अनाम गुण, सिस्टम.Web.Mvc में से एक और System.Web.Http में से एक - क्या आपने सत्यापित किया है कि आपके कोड में दो संदर्भ एक ही हैं? – stames