ASP.NET核心中有两个混淆的安全概念,一个是认证,另一个是授权。前者是确定用户是谁的过程,后者侧重于允许他们做什么。今天的主题是关于如何在ASP.NET核心2.0中使用认证。
ASP.NET核心2.0中的认证与1.0中的认证有些不同,需要在配置服务和配置中单独设置。前者称为注册服务,后者称为注册中间件。
public void configureservices(iServiceCollection services){
服务。AddCookieAuthentication();
服务。AddMvc(选项= >;
{
var policy = NewAuthOrizationPolicyBuilder()
。RequireAuthenticatedUser()
。build();
//因为是后台系统,所以必须登录才能操作。
选项。筛选器。添加(newAuthorizeFilter(策略));
});
} public void configure(IappapplicationBuilder应用程序,IHostingEnvironment env)
{
if(env .IsDevelopment())
{
app。usedeveloper exceptionpage();
}
其他
{
app。UseExceptionHandler("/Home/Error ");
}
app。UseStaticFiles();
//使用认证中间件
app。UseAuthentication();
app。UseMvc(routes = >;
{
路线。MapRoute(
名称:“默认”,
模板:“{ controller = Home }/{ action = Index }/{ id?}");
});
}
上述服务中没有参数。addcookieauthentication,系统将为某些属性指定默认值
publicationstaticclasscookieauthenticationdefaults
{
/// <。摘要>。
///用于CookieAuthenticationOptions的默认值。身份验证架构
/// <。/summary>。
publicatconststringuthenticationscheme = " Cookies ";
/// <。摘要>。
///用于提供默认的CookieAuthenticationOptions的前缀。CookieName
/// <。/summary>。
publicationstaticreadonly stringbookieprefix = " . aspnetcore . ";
/// <。摘要>。
///CookieAuthentication中间件为
/// CookieAuthenticationOptions。LoginPath
/// <。/summary>。
publicationstationreadonly PathString loginPath = NewPathString("/Account/log in ");
/// <。摘要>。
///CookieAuthentication中间件为
/// CookieAuthenticationOptions。LogoutPath
/// <。/summary>。
publicationstationreadonly PathString LogotPath = NewPathString("/Account/Logout ");
/// <。摘要>。
///CookieAuthentication中间件为
/// CookieAuthenticationOptions。访问拒绝路径
/// <。/summary>。
publicationstationreadonly PathString AccessDenidedPath = NewPathString("/Account/AccessDenided ");
/// <。摘要>。
CookieAuthenticationOptions的默认值。ReturnUrlParameter
/// <。/summary>。
publicationstaticreadonly stringternullparameter = " return URl ";
}
根据微软的命名标准,在ConfigureServices中统一使用Add***,在Configure中统一使用Use***。
登录代码
publicasync任务<。IActionResult & gt登录(o)
{
var user = NewClaimSprincipal(NewClaimSidenty(new[]{ NewClaimTypes(ClaimTypes。名称," bob") },CookieAuthenticationDefaults。AuthenticationScheme));
等待HttpContext。signinsync(CookieAuthenticationDefaults。身份验证架构、用户、新身份验证属性
{
IsPersistent = true,
ExpiresUtc = DateTimeOffset。现在。添加(时间跨度。FromDays( 180))
});
return重定向("/");
}
注销代码
publicasync任务<。IActionResult & gt注销()
{
等待HttpContext。SignOutAsync(CookieAuthenticationDefaults。AuthenticationScheme);
return重定向("/");
}
原地址:http://www.cnblogs.com/bidianqing/p/6870163.html
1.《authentication 在ASP.NET Core 2.0中使用CookieAuthentication》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《authentication 在ASP.NET Core 2.0中使用CookieAuthentication》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1179464.html