你好,我有一个MVC网站内的网页API控制器。 我想,以允许访问使用2条规则的控制:用户是管理员或请求从本地计算机来;
我是新来AuthorizationFilterAttribute,但我试着写一个限制访问仅本地请求:
public class WebApiLocalRequestAuthorizationFilter : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext == null)
{
throw new ArgumentNullException("httpContext");
}
if (actionContext.Request.IsLocal())
{
return;
}
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
actionContext.Response.Content = new StringContent("Username and password are missings or invalid");
}
}
然后,我饰我的控制器2点的属性
[Authorize(Roles = "Admin")]
[WebApiLocalRequestAuthorizationFilter]
public class ContactController : ApiController
{
public ContactModel Get(int id)
{
ContactsService contactsService = new ContactsService();
return contactsService.GetContactById(id).Map<ContactModel>();
}
}
但正如我怀疑,现在,为了访问控制器我需要管理和要求应该从本地主机进行。 我该怎么做?
亲切的问候,塔尔Humy