2013-11-14 2 views
1

Я пытаюсь использовать атрибут authorize в моем mvc 4 web api, но он не работает. Я знаю, что чего-то не хватает, но я не могу найти.Авторизованный атрибут не работает

[HttpGet] 
    [Authorize] 
    public JArray getDistance(string origin, string destination) 
    { 
     some code.. 
    } 

мой файл web.config это-

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" requireSSL="true" cookieless="UseCookies" name="authcookie" protection="All" slidingExpiration="false"> 
    </forms> 
</authentication> 

моя проверка подлинности формы печенья IS-

FormsAuthenticationTicket token = new FormsAuthenticationTicket(
      1, 
      UserName, 
      DateTime.Now, 
      DateTime.Now.AddHours(24), 
      false, 
      "user Token" 

      ); 
     string EncToken = FormsAuthentication.Encrypt(token); 
     HttpCookie cookie = new HttpCookie("authcookie", EncToken); 
     cookie.HttpOnly = true; 
     HttpContext.Current.Response.Cookies.Set(cookie); 
+0

вы используете System.Web.Http пространство имен? – ssilas777

+0

@ ssilas777 ДА Я использую его. – vivek

ответ

1

Для Web API убедитесь, что вы используете

System.Web.Http имен

не

System.Web.Mvc

+0

Я использовал System.web.http. Но это не работает. – vivek

0

AFAIK, вы можете действия [Авторизоваться] контроллера. но я не знаю о том, чтобы попробовать это на любых других методах. несколько вещей, которые следует учитывать, проверьте, правильно ли очищен или сохранен ваш файл cookie во время входа в систему и выхода из системы. вы можете написать собственный фильтр authorizaiton. проверить this

Успехов

Смежные вопросы