2013-10-03 2 views
2

Я тестирую базовую проверку подлинности Http. Я пытаюсь перейти на страницу, но когда я иду на «книги/получаю», я ничего не вижу. Зачем? Что я должен добавить?Как перейти к авторизации метода ASP.NET

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Net.Http.Headers; 
using System.Security.Principal; 
using System.Text; 
using System.Threading; 

namespace WebApiTest.Controllers 
{ 
    public class BooksController : Controller 
    { 
     [Authorize] 
     public String Get() 
     { 
      String res = "Hello"; 
      return res; 
     } 
     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 
} 

ответ

3

Как вы украсили метод с Authorize, вы не будете на самом деле быть в состоянии получить доступ к этому результату действия, если вы не аутентифицирован. Если вы ничего не видите, то вам нужно настроить loginUrl внутри web.config, что-то вроде:

<system.web> 
    <authentication mode="Forms"> 
     <forms loginUrl="http://yoursite.co.uk/login timeout="2880"/> 
    </authentication> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
+0

OP хочет 'Базовая аутентификация Http'. Я думаю, ему нужен пользовательский «ActionFilter». –

0

[Authorize] является реализация по умолчанию в рамках MVC. Он использует формы аутентификации, упомянутый @mattytommo

public class AuthorizeAttribute : FilterAttribute, AuthorizationFilter 

и использует

protected virtual bool AuthorizeCore(HttpContextBase httpContext) 
{ 
} 

Если вы хотите создать свой собственный, чтобы настроить авторизацию, вы можете проверить ASP.NET MVC 4 Custom Authorize Attribute with Permission Codes (without roles)

Refer MSDN for Deriving

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