5

我正在.NET 4.0 上开发一个 ASP.NET MVC 4 站点。我正在尝试向 WEB API 验证站点。现在该站点将传递用户名和密码,WEB API 将对其进行身份验证。如果通过身份验证,WEB API 将返回一个带有角色、生存时间等的令牌。我正在寻找一些关于此的指针。

1.)如何生成这个令牌?我不想使用 STS 或其他任何东西。即使是非万无一失的方法也可以。2.)在 MVC 端,我必须接收此令牌并将当前会话设置为经过身份验证,并确保一旦 TTL 过期我将用户重定向到登录页面?同样在所有 WEB API 请求中,我需要发送这个令牌。

4

3 回答 3

4

通常,您可以手动生成令牌并实现其验证逻辑,也可以使用一些 3rd 方工具。

对于手动实施,请查看此处此处的博客文章,这对您来说可能是一个很好的起点。它基于http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs类。

对于客户端和 OAuth 概念,您可以在此处阅读一个很好的答案。

对于第 3 方来说,一个不错的选择可能是DotNetOpenAuth。这是一个很好的库,但在使用 OAuth 时很复杂。尝试查看其Web API OAuth2 示例

第二个问题 - 答案是肯定的。您验证令牌并将请求设置为已验证。无论如何,您可以查看实施它的 Wep API OAuth 示例。

于 2013-04-21T08:51:59.277 回答
3

您可以考虑使用我目前正在开发的WebAPI Token Auth Bootstrap Package - 可在GitHubNuGet获得。

GitHub Wiki 上提供的文档和代码示例。

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

此引导程序允许您使用适当的: 、或简单地对操作具有[TokenAuthentication]属性。AccessLevelAdminUserPublicAnnonymous

此引导程序还提供TokenAuthApiController了继承自传统的并添加了此处ApiController详述的额外功能。

随意拉请求,报告问题或贡献

于 2013-10-06T23:54:06.060 回答
1

这将是开始的好地方之一,这与 asp.net 成员关系很好

https://stackoverflow.com/a/7217957/989679

您基本上将信息存储在 authCookie 的 userData 中,并且与 WebAPI 配合得很好

于 2013-04-21T07:51:28.277 回答