首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OAUTH 2.0调用WCF Resfull方法

使用OAUTH 2.0调用WCF Resfull方法
EN

Stack Overflow用户
提问于 2012-06-12 17:37:50
回答 1查看 798关注 0票数 7

我正在寻找任何文章或论坛线程,在那里我可以找到信息,如何作出OAuth2.0认证。特别是我有MVC 3应用程序和WCF。我必须使用OAuth2.0协议认证从web应用中调用API方法。但我找不到任何关于这件事的信息。谷歌之后,我只看到了如何为facebook、linkedin、google等开发客户的结果。任何帮助都会有帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-11-05 20:22:24

你可以看看DotNetOpenAuth。它有一个客户端库,您可以轻松地从NuGet在这里安装它。使用DotNetOpenAuth,所有的OAuth管道都是幕后处理的。

DotNetOpenAuth:

安装NuGet包时:https://www.nuget.org/packages/DotNetOpenAuth.Ultimate/4.3.3.13295

您可以像这样设置一个OAuth客户机:

代码语言:javascript
复制
var authorizationServerDescription = new AuthorizationServerDescription
{
    ProtocolVersion = ProtocolVersion.V20,
    TokenEndpoint = new Uri("https://yourUrl/token"),
    AuthorizationEndpoint = new Uri("https://yourUrl/authorize")
};

var client = new WebServerClient(authorizationServerDescription, "ClientIdentifier", "ClientSecret");

然后您可以像这样请求一个IAuthorizationState

代码语言:javascript
复制
// Resource Owner Password Flow
client.ExchangeUserCredentialForToken("userName", "password");

// Client Credential Flow
client.GetClientAccessToken();

IAuthorizationState包含可用于对Api进行授权的AccessToken。如果提供了RefreshToken,还可以使用以下方法刷新授权:

代码语言:javascript
复制
client.RefreshAuthorization(AuthorizationState);

ThinkTecture:

或者,您可以使用Thinktecture.IdentityModel。如果您选择使用Thinktectures IdentityModel,一定要查看以下文章:在Thinktecture中引入IdentityServer代码流和刷新令牌支持。这不仅说明了如何使用Thinktecture设置OAuth令牌服务器,而且还解释了如何使用客户机(包括代码示例)。当然,只要参数是按照OAuth规范实现的,您就可以使用这个客户机对另一个OAuth 2.0服务器进行验证。

OAuth 2.0游乐场如果您想更好地查看OAuth 2.0流,请务必查看谷歌的OAuth 2.0游乐场。我认为很多人不知道用它来测试您自己的服务器是可能的。只需按右上角的“设置”图标并设置:

OAuth端点:自定义

你可以走了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11001866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档