1. Startup.Auth.cs file
Add Property
1 |
public static OAuthBearerAuthenticationOptions OAuthBearerOptions { get ; private set ; } |
Add a static constructor
1234567 |
/// <summary> /// 构造函数 /// </summary> static Startup() { OAuthBearerOptions = new OAuthBearerAuthenticationOptions(); } |
Method added in Configureauth
12 |
// 使用不记名身份验证 app.UseOAuthBearerAuthentication(OAuthBearerOptions); |
2. WebApiConfig.cs file
Method register to add the
12 |
config.SuppressDefaultHostAuthentication(); config.Filters.Add( new HostAuthenticationFilter( "Bearer" )); |
3. Create an authentication method (Web API)
123456789101112131415161718192021222324252627282930313233 |
[HttpPost]
public
async Task<String> Authenticate(
string
userName,
string
password)
{
if
(
string
.IsNullOrEmpty(userAccount) ||
string
.IsNullOrEmpty(password))
{
return
string
.Empty;
}<br>
// 用户查找失败
User user = await UserManager.FindAsync(userName, password);
if
(user ==
null
)
{
return
string
.Empty;
}
// 身份验证票证包括角色或者可以换成用户名
var
identity =
new
ClaimsIdentity(Startup.OAuthBearerOptions.AuthenticationType);
identity.AddClaim(
new
Claim(ClaimTypes.NameIdentifier, user.Id.ToString()));
if (UserManager.SupportsUserRole)
{
IList<
string
> roles = await UserManager.GetRolesAsync(user.Id).ConfigureAwait(
false
);
foreach
(
string
roleName
in
roles)
{
identity.AddClaim(
new
Claim(ClaimTypes.Role, roleName, ClaimValueTypes.String));
}
}
AuthenticationTicket ticket =
new
AuthenticationTicket(identity,
new
AuthenticationProperties());
var
currentUtc = DateTime.UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(1));
// 返回值
return
Startup.OAuthBearerOptions.AccessTokenFormat.Protect(ticket);
}
|
4. Add a tag for a controller or method that requires authentication
1234 |
[Authorize(Roles = "Admin" )] public class UsersController : ApiController { } |
Test:
Add a token to the request header in the following format:
Authorization:bearer Boqtj0scgz2gfgz ...
Category: Web API
ASP. NET Web API authentication bearer token verification Bearer token authentication Simple implementation