2

我正在测试基本 Http 身份验证。我尝试转到一个页面,但是当我转到“书籍/获取”时,我什么也看不到。为什么?我应该补充什么?

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();
        }
    }
}
4

2 回答 2

3

当您使用 修饰该方法时Authorize,除非您经过身份验证,否则您实际上将无法访问该操作结果。如果你什么也没看到,那么你需要loginUrl在你的 web.config 中配置你的,比如:

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="http://yoursite.co.uk/login timeout="2880"/>
    </authentication>
    <authorization>
        <deny users="?" />
    </authorization>
于 2013-10-03T09:04:42.167 回答
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(无角色)

参考 MSDN 获取

于 2013-10-03T09:42:45.300 回答