Asp.net MVC 4 + WEB API - 自定义认证令牌

8 浏览
0 Comments

Asp.net MVC 4 + WEB API - 自定义认证令牌

我正在开发一个基于.NET 4.0的ASP.NET MVC 4网站。我正在尝试将该网站身份验证到一个WEB API。现在,该网站将传递用户名和密码,然后WEB API将对其进行身份验证。如果通过身份验证,WEB API将返回一个具有角色、生存时间等的令牌。我正在寻找一些关于这个的指点。

1)如何生成这个令牌?我不想使用STS或其他任何东西。即使是一个不那么可靠的方法也可以。

2)在MVC端,我需要接收这个令牌并将当前会话设置为已验证,并确保一旦生存时间过期,将用户重定向到登录页面。此外,在所有的WEB API请求中,我需要发送这个令牌。

0
0 Comments

在这个内容中,作者提到了一个名为"WebAPI Token Auth Bootstrap Package"的工具,可以帮助解决自定义身份验证令牌的问题。还有该工具的使用说明和示例代码。该工具提供的功能包括登录、注销和自动令牌解析和身份验证。

文章的标题可以是"解决Asp.net MVC 4 + WEB API中自定义身份验证令牌的问题"。

文章内容可按以下结构组织:

1. 引言:介绍Asp.net MVC 4 + WEB API中的自定义身份验证令牌问题以及解决方法。

2. 介绍WebAPI Token Auth Bootstrap Package工具:描述该工具的功能和用途,以及作者正在开发的进展情况。

3. 工具的使用方法:提供使用该工具的步骤和示例代码。

4. 工具的额外功能:介绍工具提供的其他功能,包括TokenAuthApiController的继承关系和详细功能。

5. 贡献和反馈:鼓励读者对该工具进行Pull requests、报告问题或做出贡献。

6. 结束语:总结该工具的作用和对解决Asp.net MVC 4 + WEB API中自定义身份验证令牌问题的重要性。

文章示例:

解决Asp.net MVC 4 + WEB API中自定义身份验证令牌的问题

在开发Asp.net MVC 4 + WEB API应用程序时,我们可能会遇到自定义身份验证令牌的问题。为了解决这个问题,我们可以使用作者正在开发的WebAPI Token Auth Bootstrap Package工具。该工具可以通过GitHub或NuGet获得,并提供了详细的文档和示例代码。

WebAPI Token Auth Bootstrap Package工具提供了简单的令牌和用户身份验证和授权功能,适用于WebAPI应用程序。它提供了一个名为"TokenAuthApiController"的控制器,内置了登录和注销的支持(基于cookies),并可以自动解析和验证令牌(在查询字符串、表单数据或cookies中)。

在使用该工具时,我们只需要在需要身份验证的操作上添加一个名为"TokenAuthentication"的属性,并指定适当的访问级别,如"Admin"、"User"、"Public"或"Annonymous"。

除了基本功能外,WebAPI Token Auth Bootstrap Package还提供了一个继承自传统ApiController的"TokenAuthApiController",并添加了额外的功能,详细信息可以在GitHub Wiki中找到。

读者可以通过提交Pull requests、报告问题或做出贡献来参与该工具的发展。

总之,WebAPI Token Auth Bootstrap Package工具为解决Asp.net MVC 4 + WEB API中自定义身份验证令牌的问题提供了简单而有效的解决方案。如果您在开发过程中遇到这个问题,不妨尝试使用该工具,它将为您节省大量的开发时间和精力。

0
0 Comments

问题的原因是:在Asp.net MVC 4 + WEB API中,自定义身份验证令牌时,可以手动生成令牌并实现其验证逻辑,也可以使用第三方工具。文章中提到了手动实现身份验证令牌的方法,以及使用第三方工具的方法。

问题的解决方法是:对于手动实现身份验证令牌,可以参考提供的链接,在博客文章中找到相关的示例代码,这些示例代码是基于OAuthBase.cs类实现的。对于客户端和OAuth概念的理解,可以阅读提供的链接中的答案。对于使用第三方工具,可以考虑使用DotNetOpenAuth库,虽然在处理OAuth时有一定的复杂性,但可以参考其提供的Web API OAuth2示例来实现。

另外,第二个问题的答案是肯定的。可以验证令牌并将请求标记为已验证。可以参考Web API OAuth示例来实现。

0
0 Comments

在使用Asp.net MVC 4和WEB API时,可能会遇到自定义身份验证令牌的问题。这个问题的出现原因是,我们可以将信息存储在authCookie的userData中,并且可以与WebAPI很好地配合使用。

解决这个问题的方法是,可以使用以下代码示例:

// 在登录成功后,创建身份验证票证
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
    1, // version
    username, // user name
    DateTime.Now, // issue time
    DateTime.Now.AddMinutes(30), // expires
    rememberMe, // persistent
    userData // user data, 可以存储自定义信息
);
// 将票证加密并存储在cookie中
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.HttpOnly = true;
Response.Cookies.Add(cookie);
// 在WebAPI中,可以通过以下方式获取用户信息
var authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
    FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
    string userData = authTicket.UserData;
    // 使用用户信息进行相关操作
}

通过上述代码,我们可以将自定义的用户信息存储在authCookie的userData中,并且可以在WebAPI中获取并使用这些信息。这种方式可以满足自定义身份验证令牌的需求。

0