我可以提供使用“ASP.NET MVC Open Id网站”扩展创建的身份验证,授权等作为ASP.NET MVC中的REST服务吗?如何创建此服务(可能使用WCF)? (如果可以的话,请给我一些例子。)
答案 0 :(得分:9)
是的,你可以。 OpenID 不关于授权Web服务。这就是OAuth的作用。但DotNetOpenAuth同时执行OpenID和OAuth,因此您的用户可以使用OpenID进行身份验证,然后通过OAuth授权RESTful客户端,用户故事可能就是您正在寻找的内容。
在Visual Studio库中有一个project template that shows you exactly how to do it(实际上是为你做的)。
答案 1 :(得分:2)
您可以使用MVC轻松创建REST服务。 WCF不是必需的。 ASP.NET MVC中有大量关于restful架构的帖子。
使用ASP.NET MVC的Restful服务的基本API提供了代码:http://code.msdn.microsoft.com/MvcWebAPI。
这个库的作者有一篇很好的文章,解释了如何创建能够同时提供JSON和XML的服务。可以在以下网址阅读:http://omaralzabir.com/create_rest_api_using_asp_net_mvc_that_speaks_both_json_and_plain_xml/
有很多工具可以帮助您实施OpenId服务,例如http://www.dotnetopenauth.net/或http://www.west-wind.com/weblog/posts/899303.aspx中概述的解决方案。你说你已经创建了一个OpenId日志系统。基本上,采取日志系统,创建一个界面,如:
public interface IOpenIdService{
bool Login(string login, string password);
}
并在Controller Action方法中执行它。如果成功则返回JSON或XML成功消息。如果失败则返回JSON或XML失败消息。
*我还发现本文对于使用MVC的REST有用:http://blog.wekeroad.com/2007/12/06/aspnet-mvc-using-restful-architecture/。此外,如果要扩展JSON功能,请查看JSON.NET。
答案 2 :(得分:0)
查看有关codeplex的最新nerddinner教程。它具有内置于MVC示例应用程序中的OpenId集成:http://nerddinner.codeplex.com/