首页 / C# / C#-为Web API创建程序化登录
C#-为Web API创建程序化登录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-为Web API创建程序化登录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1224字,纯文字阅读大概需要2分钟。
内容图文
![C#-为Web API创建程序化登录](/upload/InfoBanner/zyjiaocheng/685/ea4ee5101f1b4d0ca64573a567dce316.jpg)
我正在尝试使用.net core 2.0中的控制器内的HttpContext.SignInAsync登录
以下是我在.net core 1.1中使用的相同控制器,并且工作正常.
[Route("Login/{username}")]
public async Task<IActionResult> Login(string username)
{
var userClaims = new List<Claim>
{
new Claim(ClaimTypes.Name, username),
new Claim(ClaimTypes.Role, "custom")
};
var principal = new ClaimsPrincipal(new ClaimsIdentity(userClaims, "local"));
await HttpContext.SignInAsync("DefaultAuthenticationScheme", principal);
return Ok("done");
}
然后运行上面的代码,我在网站上看不到任何输出.在调试时,我看不到它越过等待代码行.我假设该函数在SignInAsync函数可以运行之前已经完成.但是我在核心1.1中没有遇到这个问题.
我对startup.cs文件的更改如下:
services.AddAuthentication("DefaultAuthenticationScheme")
.AddCookie();
并在配置中:
app.UseAuthentication();
我还试图创建一个可以进行相同类型登录的过滤器.但是,由于我将覆盖过滤器函数,因此无法使其成为异步函数,因此无法在此异步函数上调用await.
解决方法:
如果未通过身份验证/授权,则应将Authorize属性添加到希望重定向到Login的控制器/方法.
更新
如果您将它添加到您的ConfigureServices方法中,以替换您拥有的内容,那么我可以使用它:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(o => o.LoginPath = new PathString("/Login"));
内容总结
以上是互联网集市为您收集整理的C#-为Web API创建程序化登录全部内容,希望文章能够帮你解决C#-为Web API创建程序化登录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。