Asp.net MVC 4 + WEB API - 自定义身份验证令牌

5
我正在开发一个基于.NET 4.0的ASP.NET MVC 4网站。我正在尝试将该网站进行身份验证并连接到WEB API。现在,该网站将传递用户名和密码,然后WEB API将对其进行身份验证。如果验证成功,WEB API将返回一个包含角色、生存时间等信息的令牌。我希望能够了解一些方面的指导。
1.) 如何生成此令牌?我不想使用任何STS或其他工具。即使是非绝对安全的方法也可以。 2.) 在MVC端,我需要接收此令牌并将当前会话设置为已验证状态,并确保一旦生存时间过期就将用户重定向到登录页面。同时,在所有WEB API请求中,我都需要发送这个令牌。
3个回答

4
通常你可以手动生成令牌并实现其验证逻辑,或者使用一些第三方工具。对于手动实现,请查看这里这里的博客文章,这可能是一个很好的起点。它基于http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs类。
关于客户端和OAuth概念,您可以在这里阅读一个很好的答案。
从第三方方面来说,DotNetOpenAuth是一个不错的选择。这是一个很好的库,但在使用OAuth时比较复杂。试着看看它的Web API OAuth2示例
第二个问题的答案是肯定的。您需要验证令牌并将请求设置为已验证。无论如何,您都可以查看Web API OAuth示例,其中已经实现了这一点。

3
您可以考虑使用我目前正在开发的WebAPI Token Auth Bootstrap Package - 可在GitHubNuGet上获取。
文档和代码示例可在GitHub Wiki中找到。

用于WebAPI应用程序的简单令牌和用户身份验证和授权启动。提供了“TokenAuthApiController”,它具有内置的支持登录和注销(基于cookies),以及自动解析和验证令牌(在查询字符串、表单数据或cookie中)。

这个启动程序允许您在操作上简单地使用[TokenAuthentication]属性,并使用适当的AccessLevel: Admin, User, PublicAnnonymous
此引导程序还提供了继承自传统ApiController并添加详细功能的TokenAuthApiController,详情请参见此处欢迎提交Pull请求、报告问题或做出贡献

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接