Bas*_*mme 17 c# asp.net asp.net-web-api
我想使用ASP.NET Web API构建RESTful Web服务,第三方开发人员将使用它来访问我的应用程序的数据.
在Visual Studio中,我决定创建一个新的ASP.NET项目.我按照本教程,但我选择了另一个模板:Web API模板.我使用MySQL数据库和标准用户角色表,如教程中所述.
该模板带有许多非常有趣的方法来注册新用户,但没有默认的登录请求.我在不理解我在做什么的情况下写了这篇文章:
// POST api/Account/Login
[Route("Login")]
public IHttpActionResult Login(LoginBindingModel model)
{
ClaimsIdentity ci = new ClaimsIdentity();
// ...
// ...
Authentication.SignIn(ci);
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多关于安全性的文章而没有找到一个很好的样本,文档解释了它的工作原理.在Web API中实现简单的登录方法似乎非常困难.
你能解释一下为什么这个模板中没有登录方法吗?你有一个登录方法的样本.我应该将哪些内容发送回客户端应用程序以验证请求.这是使用令牌吗?
dar*_*ffo 16
通常你所做的是在该方法中实现登录逻辑,并返回一个令牌,然后在每次调用api时验证该令牌.
您可以阅读此内容以获取更多信息
http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
如果您已创建新的ASP.NET Web Application- > Web API- >更改身份验证 - > Individual User Accounts.看看App_Start- > Startup.Auth.cs.
它应该包含这样的东西:
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
// In production mode set AllowInsecureHttp = false
AllowInsecureHttp = true
};
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
Run Code Online (Sandbox Code Playgroud)
这意味着您可以发送访问令牌请求,示例请求:
然后,您可以验证访问令牌是否有效:
使用此令牌,您现在可以访问用户有权访问的所有受保护资源.
| 归档时间: |
|
| 查看次数: |
65901 次 |
| 最近记录: |