0

我有一个现有的用户数据库,所以我不使用开箱即用的 .NET 用户配置文件。

我有一个控制器,我在其中实现了创建用户、检索密码、注册用户、查看等功能。唯一的问题是,如何在 Web 应用程序中传递用户登录凭据(例如用户 ID、登录时间、角色等)以便它可以用作某些页面的安全访问手段?例如,只有具有管理员角色的用户才能访问特定页面。

我应该将它作为会话对象传递吗?

4

2 回答 2

0

初学者使用表单身份验证:ASP.NET 表单身份验证概述

将数据库用户 ID 保存在上面。

FormsAuthentication.SetAuthCookie(userId, rememberMe);

有了它,您始终可以获取用户 ID。然后,您可以在需要时使用用户 ID 获取用户详细信息。如果您一直需要它,请将其缓存在 Session 对象上。在任何情况下,都要使用表单身份验证,因为即使会话终止,您也始终可以从表单身份验证中再次获取用户 ID 并重建其缓存。使用表单身份验证的另一个优点是,如果您在 Web 场中,则每个 Web 服务器都有一个会话对象,但由于用户 ID 在身份验证 cookie 上始终可用,因此您始终可以获取它。

于 2013-07-10T06:17:02.820 回答
0

You can use ASP.Net membership provider to specify access for different roles or users.

To require users to login, use:

[Authorize]
public class YourController : Controller

// Or
[Authorize]
public ActionResult YourAction()

To restrict access for specific roles, use:

[Authorize(Roles = "Admin, User")]
public class SomeController : Controller

// Or
[Authorize(Roles = "Admin, User")]
public ActionResult SomeAction()

And to restrict access for specific users, use:

[Authorize(Users = "ABC1, ABC2")]
public class SomeController : Controller

// Or
[Authorize(Users = "ABC1, ABC2")]
public ActionResult SomeAction()

For more please have a look on http://www.codeproject.com/Articles/288631/Secure-ASP-NET-MVC3-applications

Please feel free to ask further specific question. Thanks.

于 2013-07-10T06:16:27.913 回答