1

この質問には多くの重複があるかもしれません。しかし、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()は準備ができているメソッドを持っています。

下手な英語でごめんなさい。

4

1 に答える 1

3

このチュートリアルは素晴らしいです。カスタム認証については、このビデオで明確に学ぶことができます。 http://www.youtube.com/watch?feature=player_embedded&v=BsxUsyMSGeA

于 2013-01-29T08:25:00.597 に答える