怎么去授权方法ASP.NET

时间:2013-10-03 08:59:07

标签: c# asp.net-mvc

我正在测试Basic Http Authentication。我尝试去一个页面,但是当我去“书籍/得到”时,我什么也看不见。为什么?我应该添加什么?

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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