Asp.net mvc 如何为我的MVC4应用程序创建自定义授权属性?

Asp.net mvc 如何为我的MVC4应用程序创建自定义授权属性?,asp.net-mvc,authentication,custom-attributes,asp.net-roles,custom-authentication,Asp.net Mvc,Authentication,Custom Attributes,Asp.net Roles,Custom Authentication,这个问题可能有很多疑问。但我忽略了MVC的默认成员资格,并使用我的自定义登录和cookie。这就是为什么不能像示例中那样创建自定义授权属性。 我有这样的用户模型: public class MyUserModel { public string Id{ get; set; } public string UserName { get; set; } public string Password { get; set; } public bool RememberMe { get; set

这个问题可能有很多疑问。但我忽略了MVC的默认成员资格,并使用我的自定义登录和cookie。这就是为什么不能像示例中那样创建自定义授权属性。 我有这样的用户模型:

public class MyUserModel
{
 public string Id{ get; set; }
 public string UserName { get; set; }
 public string Password { get; set; }
 public bool RememberMe { get; set; }
 public bool RoleId { get; set; }
}
以下是我的登录操作:

[HttpPost]
public ActionResult LogIn(MyUserModel model)
{
    if ((Request.Browser.Cookies))
       {
        if ((Request.Cookies["UserInfo"] == null))
         {
          if (model.RememberMe)
           {                           
            Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(30);
           }
           else
           {
            Response.Cookies["UserInfo"].Expires = DateTime.Now.AddMinutes(Session.Timeout);
            }
              Response.Cookies["UserInfo"]["UserName"] = model.UserName;
              Response.Cookies["UserInfo"]["Password"] = model.Password;
              Response.Cookies["UserInfo"]["Id"] = model.Id.ToString();
            }                    
            else
            {
              Response.Cookies["UserInfo"]["UserName"] = model.UserName;
              Response.Cookies["UserInfo"]["Password"] = model.Password;
              Response.Cookies["UserInfo"]["Id"] = model.Id.ToString();
            }
         }
 return RedirectToAction("Index", "Home");
}
我需要通过RoleId创建自定义授权属性。顺便说一句,我有如下方法
bool UserInRole(roleId),bool IsUserAuthenticated()
已准备就绪


抱歉英语不好。

本教程很棒。您可以在本视频中清楚地了解自定义授权。

在登录模型中使用RoleId有什么意义?用户可以在发布表单时在此字段中输入任何他想要的内容。您将用户配置文件信息保存在哪里?您是否正在使用服务器上的某些存储?当用户注册或登录时,RoleId将隐藏。当用户在MyService.SaveUser(MyUserModelEntity)方法中注册时,我将值设置为1或100(user或admin),您所说的隐藏是什么意思?你在哪里设置它的值?我希望你说的隐藏不是指隐藏字段。在视图中:@Html.hidden(“RoleId”)。我在保存用户数据时设置了它的值。什么可以阻止用户修改这个隐藏字段中的值并提交他想要的任何值?对于FireBug来说,这绝对是一项微不足道的任务。