WebAPI授权属性中如何获取请求cookie?.NET中有两个AuthorizeAttribute类。一个在System.Web.Http命名空间中定义的:namespaceSystem.Web.Http{//摘要://指定验证请求的System.Security.Principal.IPrincipal的授权过滤器。[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,Inherited=true,AllowMultiple=true)]publicclassAuthorizeAttribute:AuthorizationFilterAttribute{//摘要://初始化System.Web.Http.AuthorizeAttribute类的新实例。公共AuthorizeAttribute();//摘要://获取或设置授权角色。////返回://角色字符串。公共字符串角色{get;放;}////摘要://获取此属性的唯一标识符。////返回://此属性的唯一标识符。publicoverrideobjectTypeId{get;}////摘要://获取或设置授权用户。////返回://用户字符串。公共字符串用户{得到;放;}//摘要://处理授权失败的请求。////参数://actionContext://上下文。protectedvirtualvoidHandleUnauthorizedRequest(HttpActionContextactionContext);////摘要://指示指定的控件是否已授权。////参数://actionContext://上下文。////返回值://如果控件已授权,则为真;否则为真。否则,假的。受保护的虚拟布尔IsAuthorized(HttpActionContextactionContext);////摘要://授权操作时调用。////参数://actionContext://上下文。////异常://System.ArgumentNullException://上下文参数为空。publicoverridevoidOnAuthorization(HttpActionContextactionContext);}}另一个在System.Web.Mvc命名空间中定义:namespaceSystem.Web.Mvc{//摘要://指定对控制器或操作方法的访问仅限于//满足授权要求的用户。[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,Inherited=true,AllowMultiple=true)]publicclassAuthorizeAttribute:FilterAttribute,IAuthorizationFilter{//摘要://初始化System.Web.Mvc.AuthorizeAttribute类的新实例。公共AuthorizeAttribute();//摘要://获取或设置有权访问控制器//或操作方法的用户角色。////返回://有权访问控制器或操作方法的用户角色。公共字符串角色{get;放;}////摘要://获取此属性的唯一标识符。////返回://此属性的唯一标识符。publicoverrideobjectTypeId{get;}////摘要://获取或设置有权访问控制器或操作//方法的用户。////返回://有权访问控制器或操作方法的用户。公共字符串用户{得到;放;}//摘要://重写时,为自定义授权检查提供入口点。////参数://httpContext://HTTP上下文,它包含封装所有关于//单个HTTP请求的特定于HTTP的信息。////返回值://如果用户获得授权则为真;否则,假的。////异常://System.ArgumentNullException://httpContext参数为空。受保护的虚拟布尔AuthorizeCore(HttpContextBasehttpContext);////摘要://处理授权失败的HTTP请求。////参数://filterContext://封装使用System.Web.Mvc.AuthorizeAttribute的信息。//filterContext对象包含控制器、HTTP上下文、请求上下文、//操作结果和路由数据。protectedvirtualvoidHandleUnauthorizedRequest(AuthorizationContextfilterContext);////摘要://当进程请求授权时调用。////参数://filterContext://过滤器上下文,封装了使用System.Web.Mvc.AuthorizeAttribute的信息。////异常://System.ArgumentNullException://filterContext参数米为空。publicvirtualvoidOnAuthorization(AuthorizationContextfilterContext);////摘要://当缓存模块请求授权时调用。////参数://httpContext://HTTP上下文,它封装了有关//单个HTTP请求的所有HTTP特定信息。////返回://对验证状态的引用。////异常://System.ArgumentNullException://httpContext参数为空。受保护的虚拟HttpValidationStatusOnCacheAuthorization(HttpContextBasehttpContext);这两者之间的主要区别是:我想在Http版本的AuthorizeAttribute中访问请求cookie在Mvc版本中,它是这样实现的:有谁知道我如何使用HttpActionContext做同样的事情?是否可以?如果不可能-为什么会这样?公共类Foo:AuthorizeAttribute{公共覆盖无效OnAuthorization(HttpActionContextactionContext){varcookie=actionContext.Request.Headers.GetCookies("Bar").FirstOrDefault();}}字符串sessionId="";CookieHeaderValuecookie=Request.Headers。GetCookies("bar").FirstOrDefault();if(cookie!=null){sessionId=cookie["bar"].Value;}GetCookies返回一个cookie的集合,然后你将需要获取你想要的那个。以上就是C#学习教程:如何获取WebAPI授权属性中的请求cookie?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——请求。标头。GetCookies("Bar").FirstOrDefault();varcookie=cookies["酒吧"];}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
