我有一个带有C#后端的小型AngularJS Web应用程序,它可以正常运行;我使用
以WebMatrix.WebData.WebSecurity以基于cookie的方式处理身份验证WebSecurity.CreateUserAndAccount(username, password);
用于新帐户,
WebSecurity.Login(username, password);
登录,
WebSecurity.Logout();
用于注销,
WebSecurity.GetUserId();
获取特定请求的用户ID。
正如我所说,这一切都运作良好,但它感觉很脆弱,更不用说它不适用于我的后端的任何RESTful使用。 (例如,我想在将来的某个时候从移动应用程序中获取API。)这不是我的专业领域(这首先是这样的结果)所以我在搜索建议。
我想转换到某种基于令牌的身份验证,而不是让身份验证过程更加依赖于上下文。 WebSecurity类是否具有此功能?这个班级是一个好方法吗?如果没有,过渡到更好的东西可能是一个好的策略?我一直在谷歌上搜索这个问题,并且看到很多条款被抛出,没有任何好的背景。
非常感谢您的帮助!
答案 0 :(得分:1)
您可能熟悉下一个教程,但它们会为您提供基于令牌的身份验证的完整图片。 带有ASP.NET Web API 2.2的ASP.NET Identity 2.1(帐户管理) - Part 1 Part 2 Part 3
您还可以使用下面的tutorial描述刷新令牌。顺便说一句,他们也有到期选项
感谢TAISEER的辛勤工作。
答案 1 :(得分:1)
如果您能够升级,假设您尚未升级到ASP.net 4.5.1或更高版本,ASP.net现已开始提供OAuth支持。这将允许您让用户通过MS ID,Facebook,Twitter或其他OAuth2提供商(即基于令牌的身份验证)登录。
虽然我不喜欢这样做,但是为了防止未来读者的链接中断,以下文章是关于Oauth2如何与Asp.net一起工作的一个很好的教程。不幸的是,这里发布的时间太长了。
http://www.asp.net/web-api/overview/security/external-authentication-services