已搜索找不到任何相关内容。
到目前为止,我已经使用 C# 在 MVC 中构建了一个很酷的 Web 应用程序。我创建了一个用户模型
public class User
{
// Must be named EntityNameId, must have primary key!
public int UserId { get; set; }
[DisplayName("First Name")]
public string firstName { get; set; }
[DisplayName("Last Name")]
public string lastName { get; set; }
[DisplayName("Cell Number")]
public string cellNumber { get; set; }
}
因此为每个用户设计了个人资料/仪表板
/User/Profile/1
通过他们的 ID 访问。我还有其他部分,例如用于编辑项目的菜单/Item/Index/1,它显示该用户的所有项目等。我的代码可以为用户过滤和填充这些页面。但到目前为止我还没有实现任何身份验证。我想通过 ApplicationServices 使用内置的身份验证工具,并且之前已经使用过角色:
<Authorize(Roles:="Manager,Administrator")>
但是我想将页面限制为登录的特定用户? IE。/User/Profile/1 只能由该用户等访问,而不是由他们所服务的角色访问。
有人知道如何做到这一点吗?我知道这可能意味着将帐户 Controller 和用户 Controller 绑定(bind)在一起,但不太确定如何做到这一点以使一切都一样?应用程序基本上完成了,虽然很简单,但只需要身份验证。
最佳答案
只需在操作方法顶部做一个简单的检查,如果不是当前用户,则执行重定向。
public ActionResult Profile(int id)
{
if (CurrentUser.Id != id)
{
return RedirectToAction("Index");
}
return View();
}
如果你经常使用它,你可以将它重构为一个方法。
关于c# - 用户认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15707305/