这篇文章主要介绍了ASP。网核心中如何使用饼干身份验证的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
背景
ASP .网络核心身份是一个完整的全功能身份验证提供程序,用于创建和维护登录名。但是,饼干不能使用基于的身份验证提供程序ASP。网核心身份。
配置
在启动。配置服务方法中,创建具有添加身份验证和添加饼干方法的身份验证中间件服务:
服务。添加身份验证(CookieAuthenticationDefaults .身份验证方案).数据流向自动控制唐山网站优化ookie();
app .UseAuthentication();
身份验证架构传递到添加身份验证设置应用程序的默认身份验证方案。如果有多个饼干身份验证实例,并且你想要使用特定方案进行授权,身份验证架构会很有用。将身份验证架构设置为烹饪验证默认值。身份验证架构为方案提供值饼干。可以提供任何用于区分方案的字符串值。
应用的身份验证方案不同于应用的饼干身份验证方案。如果未向添加饼干提供饼干身份验证方案,则使用烹饪验证默认值.身份验证架构(“饼干”)。
默认情况下,身份验证饼干的本质属性设置为真的。当站点访问者未同意数据收集时,允许使用身份验证饼干。
登录
若要创建保存用户信息的饼干,请构造一个ClaimsPrincipal。将对用户信息进行序列化并将其存储在饼干中。
使用任何所需的要求创建声明实体,并调用SignInAsync以登录用户:
///摘要
///
////摘要
///param name='model'/param
///param name='returnUrl'/param
///返回/返回
[HttpSet]
[AllowAttribute]
[有效防伪标签]
公共异步任务结果登录(逻辑模型,字符串返回Url=空)
{
if(!ModelState .IsValid)
{
返回Json(新{状态='错误',消息='数据验证失败' });
}
string IP=getremotepaddress();
var r=等待UserApp .SaasLoginAsync(型号。账号,型号。密码,IP);
if(!字符串IsNullOrEmpty(r .错误))
{
返回Json(新{状态='错误',消息=r . Error });
}
var claims=new ListClaim
{
新索赔类型。用户数据,获取当前用户. ToString()),
};
var索赔主体=新索赔主体(
声明,CookieAuthenticationDefaults .AuthenticationScheme);
var authProperties=new AuthenticationProperties
{
ExpiresUtc=DateTimeOffset .现在。增加分钟(120)
};