আমি মনে করি আপনি JWT (জসন ওয়েব টোকেন) এর সাথে যেতে পারেন।
প্রথমে আপনাকে প্যাকেজ সিস্টেম ইনস্টল করতে হবে dআডেন্টিটি মডেল.টোকেনস.জেডব্লিউটি:
$ dotnet add package System.IdentityModel.Tokens.Jwt
টোকেন জেনারেশন এবং এর মতো প্রমাণীকরণের জন্য আপনাকে একটি নিয়ামক যুক্ত করতে হবে:
public class TokenController : Controller
{
[Route("/token")]
[HttpPost]
public IActionResult Create(string username, string password)
{
if (IsValidUserAndPasswordCombination(username, password))
return new ObjectResult(GenerateToken(username));
return BadRequest();
}
private bool IsValidUserAndPasswordCombination(string username, string password)
{
return !string.IsNullOrEmpty(username) && username == password;
}
private string GenerateToken(string username)
{
var claims = new Claim[]
{
new Claim(ClaimTypes.Name, username),
new Claim(JwtRegisteredClaimNames.Nbf, new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds().ToString()),
new Claim(JwtRegisteredClaimNames.Exp, new DateTimeOffset(DateTime.Now.AddDays(1)).ToUnixTimeSeconds().ToString()),
};
var token = new JwtSecurityToken(
new JwtHeader(new SigningCredentials(
new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Secret Key You Devise")),
SecurityAlgorithms.HmacSha256)),
new JwtPayload(claims));
return new JwtSecurityTokenHandler().WriteToken(token);
}
}
তারপরে আপডেটের পরে স্টার্টআপ.স ক্লাসটি নীচের মত দেখতে:
namespace WebAPISecurity
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication(options => {
options.DefaultAuthenticateScheme = "JwtBearer";
options.DefaultChallengeScheme = "JwtBearer";
})
.AddJwtBearer("JwtBearer", jwtBearerOptions =>
{
jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Secret Key You Devise")),
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = true,
ClockSkew = TimeSpan.FromMinutes(5)
};
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseAuthentication();
app.UseMvc();
}
}
এবং এটি হ'ল এখন যা অবশিষ্ট রয়েছে তা হ'ল [Authorize]
আপনার পছন্দসই নিয়ন্ত্রণকারী বা ক্রিয়াকলাপগুলিতে বিশেষত্ব স্থাপন করা।
এখানে একটি সম্পূর্ণ সোজা ফরোয়ার্ড টিউটোরিয়াল একটি লিঙ্ক আছে।
http://www.blinkcare.com/2017/09/06/secure-web-api-in-asp-net-core/