网站推广seo优化,静安微信手机网站制作,一级a做爰片免费网站性恔,app免费开发平台有哪些BeetleX.FastHttpApi.Jwt组件是BeetleX.FastHttpApi的JWT安全验证插件#xff0c;通组件的简单配置即可以实现对webapi进行安全访问控制。接下来介绍如何使用这组件并和其他自定义验证兼容。使用本示例需要引用两个组件分别是:BeetleX.FastHttpApi.Hosting和BeetleX.FastHttpA… BeetleX.FastHttpApi.Jwt组件是BeetleX.FastHttpApi的JWT安全验证插件通组件的简单配置即可以实现对webapi进行安全访问控制。接下来介绍如何使用这组件并和其他自定义验证兼容。使用 本示例需要引用两个组件分别是:BeetleX.FastHttpApi.Hosting和BeetleX.FastHttpApi.Jwt。前者是简单托管服务构建后者则是JWT验证。引用组件后可以在main访问编写以下代码class Program
{static void Main(string[] args){var builder new HostBuilder().ConfigureServices((hostContext, services) {services.UseBeetlexHttp(o {o.LogToConsole true;o.LogLevel BeetleX.EventArgs.LogType.Warring;o.Port 80;o.SetDebug();},(http) {http.UseJWT();},typeof(Program).Assembly);});builder.Build().Run();}
}
通过HttpApiServer对象的UseJWT方法开启相关验证当开户后所有控制器访问都必须获取JWT许可(包括cookie或头部Authorization包括相关凭证)。控制器 当开启JWT后默认情况下控制器所有方法都需要经过验证但可以通过组件提供的Attribute来更改相关验证方式。 [Controller]public class Home{[AuthMark(AuthMarkType.NoValidation)]public bool Login(string name, string pwd, IHttpContext context){var result (name admin pwd 123456);if (result)context.SetAdminJwtToken(name);return result;}[AuthMark(AuthMarkType.Admin)]public object List(){return Northwind.Data.DataHelper.Defalut.Employees;}}
可以通过[AuthMark(AuthMarkType.NoValidation)]标记方法或整个API不进行验证处理。还可以通过 [AuthMark(AuthMarkType.Admin)]来标记方法访问的角色必须是admin。以上代码是把Login标记为不需要验证然后在方法中调用SetAdminJwtToken或SetJwtToken方法来设置当前会话的登陆凭证。其他验证 有时候希望个别API兼容其他验证方式这个时候可以在UseJWT转入一个处理函数。http.UseJWT((o, e)
{var token e.HttpContext.Data[token];if (token ! null){if (token admin){e.Success();}else{e.Failure(当前凭证无效);}}
});
可以在方法中调用Success或Failure来告诉组件自定义验证情况如果这两个方法都不调用的情况下会路由回默认的JWT验证。完整示例 https://github.com/beetlex-io/BeetleX-Samples/tree/master/Web.JWT