此Web应用程序通过将ADAL标记字符串作为参数传递来调用C#REST服务.在我的REST服务中,我想验证此令牌.如果令牌有效,则服务将执行操作.
我搜索了很多但是找不到在我的休息服务中验证JWT令牌的方法.你能帮帮我吗?
解决方法
1.使用OWIN中间件
使用将为您处理令牌验证的中间件.一个常见的案例是OWIN中间件,它为您提供了所有的魔力.通常,这是最好的方法,因为它允许您将代码集中在API的业务逻辑上,而不是低级别的令牌验证.有关使用OWIN的示例REST API,请查看以下两个示例:
> https://github.com/Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnect
> https://github.com/Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnect-aspnet5
2.手动JWT验证
您可以使用JSON Web Token Handler for ASP.NET进行手动JWT令牌验证. (好吧,所以它不是完全手动的,而是手动调用的.)还有一个示例:
> https://github.com/Azure-Samples/active-directory-dotnet-webapi-manual-jwt-validation(实际的JWT验证发生在Global.asax.cs,看起来像这样:
JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); TokenValidationParameters validationParameters = new TokenValidationParameters { ValidAudience = audience,ValidIssuer = issuer,IssuerSigningTokens = signingTokens,CertificateValidator = X509CertificateValidator.None }; try { // Validate token. SecurityToken validatedToken = new JwtSecurityToken(); ClaimsPrincipal claimsPrincipal = tokenHandler.ValidateToken(jwtToken,validationParameters,out validatedToken); // Do other validation things,like making claims available to controller... } catch (SecurityTokenValidationException) { // Token validation failed HttpResponseMessage response = BuildResponseErrorMessage(HttpStatusCode.Unauthorized); return response; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。