我想使用OAuth访问令牌创建安全的Web服务.
如何将OAuth2实现为ASP.NET Web API2 Web服务?
我想在不登录的情况下阻止使用Web服务 – 没有访问令牌.
有一个示例项目实现oauth2到Web服务?
WebAPI控制器例如:
public class GetDataController : APIController{ public string Get(int ID,string accesstoken) { //Check access token //How can I implementing this logic for authorization valID access token if (accesstoken == isInvalID) { return "Access denIEd"; } //If accesstoken is valID return value return "value"; }}
使用JavaScript:
$.get( "API/getdata",{ ID: 1,accesstoken: "KEY" } ).done(function( data ) {alert( "Data Loaded: " + data );});解决方法 最简单的方法是从新的Visual Studio 2013 ASP.NET Web应用程序模板开始.在“新建ASP.NET项目”对话框中选择“Web API”,然后单击“更改身份验证”按钮并选择“个人用户帐户”选项,如下图所示:
这将创建一个项目,该项目使用新的ASP.NET成员资格“家庭成员”ASP.NET身份和承载令牌OAuth实现.
您需要注意的是以下类:
App_Start-> Startup.Auth.cs
令牌认证由OWIN中间件处理,这是配置管道的代码.最重要的是调用USEOAuthBearerTokens,它将启用3个OWIN中间件组件授权服务器中间件,应用程序承载令牌中间件,外部承载令牌中间件.你可能不需要最后一个.
App_Start-> IDentityConfig.cs
默认情况下,ASP.NET IDentity使用Entity Framework作为存储提供程序(用户,角色,声明持久性).如果您不使用EF,则必须切换到另一个存储提供程序或使用几个接口自行实现. Overview of Custom Storage Providers for ASP.NET Identity.
供应程序> ApplicationOAuthProvIDer.cs
OWIN中间件将使用适当的标头处理每个请求.下面是验证http标头中针对存储提供程序提供的用户名和密码的代码,并返回将附加到每个后续http请求的标记.
验证工作流程
>首先,您需要获取安全令牌.这是OAuth授权服务器的任务.令牌端点配置为存在于http:// yourSite / Token.要获取令牌,您需要编写一个特殊的http标头(使用Fiddler测试它).前3行应该转到POST请求标题,最后一行应该请求正文.
Host: yoursiteContent-Type: application/Json;charset=UTF-8Content-Length: 51grant_type=password&username=xxxxxx&password=xxxxxx
如果凭据正常,您将收到以下响应.保存access_token值,以便在步骤2中使用它:
.expires=Tue,17 Jun 2014 22:11:12 GMT.issued=Tue,03 Jun 2014 22:11:12 GMTaccess_token=c-D34PHKFGaPthuF2sIwmeowXYAPFiSPsMH...expires_in=1209599token_type=bearerusername=xxxxxxx
>使用jquery为安全资源编写适当的GET请求(使用show response查看整个响应):
var getData = function(){var url = "http://yoursite/API/protectedResource/";$.AJAX(url,{type: "GET",headers: "Authorization" : "Bearer " + accesstoken}).always(showResponse);return false;};
我希望这会让你开始.
总结以上是内存溢出为你收集整理的c# – 在ASP.NET Web API2 Web服务中实现OAuth访问令牌全部内容,希望文章能够帮你解决c# – 在ASP.NET Web API2 Web服务中实现OAuth访问令牌所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)