asp.net-web-api – 在Web Api / Owin架构中,处理“/ token”的
发布时间:2020-12-15 23:01:01 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试了解 Asp.net Web Api个人帐户的身份验证和授权.我已经在网络上看到了几个教程,包括 this one.简而言之,当用户代理提供用户名和密码时,API会发出一个令牌,客户端将在随后的API中调用API来标识自身.用户代理通过发出请求来接收令牌,通常为: http:/
我正在尝试了解
Asp.net Web Api个人帐户的身份验证和授权.我已经在网络上看到了几个教程,包括
this one.简而言之,当用户代理提供用户名和密码时,API会发出一个令牌,客户端将在随后的API中调用API来标识自身.用户代理通过发出请求来接收令牌,通常为:
http://example.com/Token.路径似乎在启动类中设置,如下所示:
TokenEndpointPath = new PathString("/Token") 我的问题是,我找不到与该路径匹配的任何控制器方法.这个怎么用? 解决方法
当您在ASP.NET中创建具有单独身份验证的新项目时,将使用OAuth提供程序创建解决方案来处理身份验证请求.
如果你看看你的解决方案,你应该看到一个Providers文件夹与一个ApplicationOAuthProvider类. 该类实现了在您的网站上验证您的会员的所有逻辑. OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/Token"),Provider = new ApplicationOAuthProvider(PublicClientId),AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),AllowInsecureHttp = true }; TokenEndPoint Path属性定义了将激发GrandResourceOwnerCredentials的GrantResourceOwnerCredentials方法的url. 如果您使用提琴手认证并使用这种身体 grant_type=password&username=testUserName&password=TestPassword 你应该通过以下方法: public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>(); ApplicationUser user = await userManager.FindAsync(context.UserName,context.Password); if (user == null) { context.SetError("invalid_grant","The user name or password is incorrect."); return; } ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager,OAuthDefaults.AuthenticationType); ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager,CookieAuthenticationDefaults.AuthenticationType); AuthenticationProperties properties = CreateProperties(user.UserName); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity,properties); context.Validated(ticket); context.Request.Context.Authentication.SignIn(cookiesIdentity); } 其中context.UserName和context.Password与请求中使用的数据一起设置. 问候. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 是否发布了ASP.NET MVC 5?
- asp.net-mvc – 使用asp.net属性路由的根路径的默认路由
- asp.net-mvc – 可以在ASP.NET MVC中停止表单的多个回发的方
- .net – 具有预编译视图的助手
- asp.net-mvc – ASP.NET MVC – 使用表单发布多个复杂对象
- asp.net-mvc – ASP.NET MVC UpdateModel()方法如何工作?
- 泛型单例
- asp.net-mvc – ASP.MVC 2.0当整数值为零时,如何显示整数的
- asp.net – 在集成模式下替换HttpContext.Current.Request.
- .net – SqlMembershipProvider与自定义解决方案
推荐文章
站长推荐
- asp.net – visual studio调试错误无法启动程序没
- asp.net – HttpWebRequest正在为404抛出异常
- 在ASP.NET中找到10月的最后一个星期日c#
- .net – SqlMembershipProvider与自定义解决方案
- asp.net – 免费DotNetNuke皮肤资源
- 实体框架 – 在Db初始化程序的种子方法中创建Asp
- asp.net-mvc – ASP.NET MVC ValidateInput(fals
- 分享一个很早之前写的小工具DtSpyPlus
- ASP.NET 2.0 – 带有tbody / thead的DataGrid
- asp.net-mvc – MVC3 TextBoxFor与EditorFor –
热点阅读