扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

c#涓瓀ebapi鐨則oken鎬庝箞閰嶇疆

扬州沐宇科技
2024-01-24 18:11:21
c#, webapi

鍦–#鐨刉eb API涓厤缃甌oken闇€瑕佽繘琛屼互涓嬫楠わ細

  1. 鍦╓eb API椤圭洰涓畨瑁匨icrosoft.AspNet.WebApi.Owin鍜孧icrosoft.Owin.Security.Jwt NuGet鍖呫€?/p>

  2. 鍦╓eb API椤圭洰涓厤缃甋tartup绫伙紝璇ョ被鍦ㄩ」鐩惎鍔ㄦ椂浼氳璋冪敤銆傚彲浠ヤ娇鐢ㄤ互涓嬩唬鐮侀厤缃甌oken楠岃瘉銆?/p>

using Microsoft.AspNet.WebApi.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.Jwt;
using Owin;
using System.Configuration;
using System.IdentityModel.Tokens;

[assembly: OwinStartup(typeof(YourProjectNamespace.Startup))]

namespace YourProjectNamespace
{
    public class Startup
    {
        public void Configuration(IAppBuilder appBuilder)
        {
            // 鑾峰彇Token鐨勫瘑閽?/span>
            var secretKey = ConfigurationManager.AppSettings["TokenSecret"];

            // 閰嶇疆Token楠岃瘉鍙傛暟
            var tokenValidationParameters = new TokenValidationParameters
            {
                ValidIssuer = "your_issuer",
                ValidAudience = "your_audience",
                IssuerSigningToken = new BinarySecretSecurityToken(Convert.FromBase64String(secretKey)),
            };

            // 浣跨敤Token楠岃瘉涓棿浠?/span>
            appBuilder.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                TokenValidationParameters = tokenValidationParameters
            });

            // 閰嶇疆Web API璺敱
            HttpConfiguration configuration = new HttpConfiguration();
            configuration.MapHttpAttributeRoutes();
            appBuilder.UseWebApi(configuration);
        }
    }
}
  1. 鍦╓eb.config鏂囦欢涓厤缃甌oken鐨勫瘑閽ュ拰鍏朵粬鐩稿叧閰嶇疆銆?/li>
<configuration>
  <appSettings>
    <add key="TokenSecret" value="your_token_secret_key" />
    <!-- 鍏朵粬閰嶇疆椤?-->
  </appSettings>
  <!-- 鍏朵粬閰嶇疆椤?-->
</configuration>

鍏朵腑锛孴okenSecret鏄敤浜庣鍚嶅拰楠岃瘉Token鐨勫瘑閽ワ紝鍙互鏍规嵁瀹為檯闇€姹傝繘琛岄厤缃€?/p>

  1. 浣跨敤[Authorize]鐗规€ф潵鏍囪闇€瑕佽繘琛孴oken楠岃瘉鐨凙PI鏂规硶鎴栨帶鍒跺櫒銆?/li>
using System.Web.Http;

namespace YourProjectNamespace.Controllers
{
    public class YourController : ApiController
    {
        [Authorize]
        [HttpGet]
        public IHttpActionResult YourApiMethod()
        {
            // Token楠岃瘉閫氳繃锛屾墽琛岄渶瑕佹巿鏉冪殑鎿嶄綔
            return Ok();
        }
    }
}

涓婅堪姝ラ瀹屾垚鍚庯紝Web API灏嗕細浣跨敤閰嶇疆鐨凾oken楠岃瘉鏉ヤ繚鎶ら渶瑕佹巿鏉冭闂殑API鏂规硶銆?/p>

扫码添加客服微信