asp.net-web-api – 在Web Api / Owin架构中,处理“/ token”的请求在哪里?
|
我正在尝试了解 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服务器端代码块说明
- IIS 7.5 ASP.NET-4 Gzip压缩
- 是否有比ASP.NET成员资格提供程序更现代的会员/安全性实现
- asp.net-mvc – 如何将ViewData传递给HandleError视图?
- asp.net – 如何使用ReportService2010命名空间呈现报告
- asp.net – 删除HTML或ASPX扩展
- asp.net-mvc – 带有lambda表达式的ASP.net MVC Action URL
- ASP.Net:将客户端onClick添加到GridView中的HyperlinkFiel
- IIS会话超时与ASP.NET会话超时
- asp.net – 如何防止PDF文档下载到用户PC?
- asp.net – 如何迭代通过自定义vb.net对象的每个
- asp.net-mvc – ASP.NET MVC – RequireJS最佳的
- asp.net – 如何使用资源文件设置按钮文本
- asp.net-mvc – 在C#中,我如何从一个字节[]中知道
- NHibernate中对同一个对象的Lazyload要设置一致
- asp.net-mvc-3 – 在F#中的ViewBag动态对象上设置
- asp.net-mvc – 添加控制器模型类未显示
- asp.net – 使用OptGroup组构建选择列表
- asp.net-mvc-4 – 调用客户端时应该发出服务器端
- asp.net-mvc – 如何在ASP.NET MVC中生成完整的t
