public class TokenController : ApiController // 定义一个名为 TokenController 的类,继承自 ApiController 类。 { [HttpPost] // 使用 HTTP POST 请求方式。 public HttpResponseMessage Login(User user) // 定义一个名为 Login 的方法,它接受一个 User 对象作为参数,并返回一个 HttpResponseMessage 对象。 { if (user == null) // 如果 user 参数为空,则抛出一个 HTTP 响应异常(状态码为 400)。 { throw new HttpResponseException(HttpStatusCode.BadRequest); } if (IsValid(user)) // 如果 IsValid 方法返回 true,则调用 TokenGenerator 类的 GenerateTokenJwt 方法生成一个 token,并将其作为 HTTP 响应正文返回给客户端。否则,返回一个 HTTP 响应异常(状态码为 401)。 { var token = TokenGenerator.GenerateTokenJwt(user.Username); return Request.CreateResponse(HttpStatusCode.OK, token); } else { return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Invalid username or password."); } } private bool IsValid(User user) // IsValid 方法用于验证用户是否有效。在这个示例中,该方法始终返回 true。 { // TODO: Check if the user is valid return true; } } public static class TokenGenerator // 定义一个名为 TokenGenerator 的静态类。 { public static string GenerateTokenJwt(string username) // 定义一个名为 GenerateTokenJwt 的静态方法,它接受一个字符串类型的参数 username,并返回一个字符串类型的 token。 { var securityKey = new SymmetricSecurityKey(Encoding.Default.GetBytes("your custom Security Key phrase")); // 创建一个 SymmetricSecurityKey 对象,它使用指定的字符串作为密钥。 var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature); // 创建一个 SigningCredentials 对象,它使用指定的 SymmetricSecurityKey 对象和 HmacSha256Signature 签名算法。 var claims = new[] // 创建一个 Claim 数组, { new Claim(JwtRegisteredClaimNames.Sub, username), // 包含用户名称的声明。 new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), // 包含唯一标识符的声明。 }; var token = new JwtSecurityToken( // 创建一个 JwtSecurityToken 对象,它包含要包含在 token 中的声明、签名凭据和其他选项。 issuer: "yourdomain.com", // 发行者名称。 audience: "yourdomain.com", // 接收者名称。 claims: claims, // 包含要包含在 token 中的声明的数组。 expires: DateTime.UtcNow.AddDays(1), // token 的过期时间。 signingCredentials: signingCredentials); // 用于签名 token 的凭据。 return new JwtSecurityTokenHandler().WriteToken(token); // 将 JwtSecurityToken 对象转换为字符串类型的 token 并返回该字符串。 } }
这个示例代码使用了 JWT(JSON Web Token)来生成 token。在这个示例中,Web API 会在用户登录时生成一个 token 并将其返回给客户端。客户端可以将这个 token 存储在本地,并在每次请求时将其发送到 Web API。Web API 可以使用这个 token 来验证用户身份并返回相应的数据。标签:返回,Web,ASP,token,Token,API,user,new From: https://www.cnblogs.com/xiangshifu/p/17245746.html