2013-04-21 139 views
5

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

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

回答

4
效果很好

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

对于手动实现在博客文章中看herehere,它可能是一个很好的起点。它基于http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs类。

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

从第三方可以选择goo选择DotNetOpenAuth。这是一个很好的库,但使用OAuth时会很复杂。尝试看其Web API OAuth2 sample

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

3

你可能会考虑使用的WebAPI令牌验证引导套餐我目前的工作 - 可在GitHubNuGet

文档和代码示例可在GitHub Wiki

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

这种引导让你简单地对动作用适当的AccessLevel[TokenAuthentication]属性:AdminUserPublicAnnonymous

此引导还提供TokenAuthApiController,从传统的继承ApiController并增加了额外功能的详细here

随意拉请求,报告问题或有助于