62,243
社区成员




public class BasicAuthorizeAttribute : System.Web.Http.AuthorizeAttribute
{
public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
//读取HEADER信息验证
if (actionContext.Request.Headers.Authorization != null)
{
string TicketInfo = actionContext.Request.Headers.Authorization.ToString();
//header里的 Authorization: ticket
if (ValidateUserTicket(TicketInfo))
{
IsAuthorized(actionContext);
//Users = "12";
}
else
{
HandleUnauthorizedRequest(actionContext);
}
}
else
{
HandleUnauthorizedRequest(actionContext);
}
}
protected override void HandleUnauthorizedRequest(System.Web.Http.Controllers.HttpActionContext actionContext)
{
//var challengeMessage = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);
//challengeMessage.Headers.Add("WWW-Authenticate", "Basic");
//throw new System.Web.Http.HttpResponseException(challengeMessage);
base.HandleUnauthorizedRequest(actionContext);
if (actionContext.Response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
{
//401错误
//actionContext.Response.Result = new RedirectResult("/");
}
}
[Auth.BasicAuthorize]
public class ValuesController : ApiController
{
// GET api/val
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
//在这里如何将在BasicAuthorize 用户认证的信息传递过来
}
var Authorization = Request.Headers.Authorization;
;不知道有没有其他的方法来解决。