Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 29 kết quả

Đề tài: Quản Lý Tài Khoản Bằng Provider MVC3

  1. #1
    Ngày gia nhập
    04 2012
    Nơi ở
    Ha Noi
    Bài viết
    149

    Mặc định Quản Lý Tài Khoản Bằng Provider MVC3

    Videos demo cho web.

    http://www.youtube.com/watch?v=2bR4R...ature=youtu.be

    Để chạy được web các bạn cần tạo database.(chạy query file: LoginAccount.sql trong object).
    đổi mật khẩu và tên máy cho đúng trong web.config
    XML Code:
    1. <connectionStrings>
    2.     <add name="LoginAccountEntities" connectionString="metadata=res://*/LoginAccount.csdl|res://*/LoginAccount.ssdl|res://*/LoginAccount.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=LoginAccount;Persist Security Info=True;User ID=sa;Password=duc10a2;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
    3.   </connectionStrings>

    - Giới thiệu Về Provider
    + có thể quản lý được các quyền hạn để vào một trang nào đó.
    + có thể quản lý được các tài khoản để vào một trang nào đó
    + cách code đơn giản và hiệu quả.

    - Cách quản lý các hàm(Acction trong controllers)
    + Quản lý Cả controllers.
    Visual C# Code:
    1. ...
    2. [Authorize(Roles = "Admin")]//Chi co Admin Moi Dung Duoc Controller nay
    3.     public class AdminController : Controller
    4.     {
    5. ...
    - trong đó Roles ="Admin" là quyền có thể vào.bạn có thể bổ xung thêm nhiều quyền vd như
    Visual C# Code:
    1. [Authorize(Roles = "Admin,ThanhVien,Mod")]//Chi co Admin hoặc ThanhVien hoặc Mod Mới vào được controllers này
    + Quản lý một Accitons.
    Visual C# Code:
    1. ...
    2. [Authorize(Roles = "Admin,ThanhVien")] //Chi co Admin va ThanhVien Moi Dung duoc acction nay
    3.         [HttpPost] //phuong thuc get
    4.         public ActionResult DoiMatKhau(ChangePasswordModel model)
    5.         {
    6. ...
    + Quản lý Một Acctions hoặc Controllers mà chỉ cần nó đăng nhập là vào được thì làm như sau.
    Visual C# Code:
    1. ...
    2. [Authorize(Roles = "")] //Chi can dang nhap la dung duoc Action nay
    3.         [HttpGet] //phuong thuc get
    4.         public ActionResult PhanQuyen()
    5. ...
    + Ngoài ra ta còn có thể Quản lý bằng tài khoản.vd.
    Visual C# Code:
    1. ...
    2. [Authorize(Users= "Admin")] //Chỉ có tài tài khoản Admin mới vào được hàm này. tài khoản chứ không phải quyền đâu nhé.đừng nhầm :))
    3.         [HttpGet] //phuong thuc get
    4.         public ActionResult PhanQuyen()
    5. ...

    Các thuộc tính lấy quyền hoặc tên tài khoản trong code.

    + HttpContext.Current.User.Identity.IsAuthenticated (true nếu đã có quyền,false chưa có quyền)
    + HttpContext.Current.User.Identity.Name (Lấy tên tai khoản của người dùng)
    + HttpContext.Current.User.IsInRole("Admin") (true nếu đúng là quyền Admin, false nếu không phải quyền Admin).
    + FormsAuthentication.SetAuthCookie("ten tai khoan can lay quyền", true nếu muốn lưu vào cookie false thi không lưu); (Khi gọi hàm này thì nó sẽ tự động gọi hàm GetRolesForUser(string username) trong fie CustomRoleProvider.cs) nó sẽ chuyền giá trị username để lấy quyền.
    ...

    - Nếu những Controllers hoặc Acction nào mà bạn không muốn phân quyền cho nó thì đừng thêm [Authorize(Roles = "Admin,ThanhVien")] cho nó là được.

    để dùng Provider cần chú ý những file sau:(xem trong object nhé)
    1, cần có class : CustomRoleProvider.cs (nếu copy sang object khác nhớ đổi tên namespace nhé)
    + trong file này cần sử lý hàm GetRolesForUser(string username) để lấy quyền.
    Visual C# Code:
    1. public override string[] GetRolesForUser(string username)
    2.         {
    3.             ////-----------------ket noi voi database de lay quyen cua tai khoan-----------------
    4.             LoginAccountEntities db = new LoginAccountEntities(); //tao ket noi voi database
    5.             Account account = db.Accounts.Single(x => x.NameAccount.Equals(username)); //tuong duong voi cau lenh "Select Top 1 From Accounts Where NameAccount = username"
    6.             if (account != null) //neu tim thay tai khoan
    7.             {
    8.                 return new String[] { account.Roles }; //tra ve quyen cua nguoi dung
    9.             }
    10.             else
    11.                 return new String[] { }; //new khong tim thay tai khoan thi gan quyen bang null
    12.         }
    2, cần thêm một đoạn provider trong web.config
    Visual C# Code:
    1. ...
    2. <system.web>
    3.     <!--impost quyen/////////////////////////-->
    4.     <roleManager enabled="true" defaultProvider="MyRoleProvider">
    5.       <providers>
    6.         <clear />
    7.         <add name="MyRoleProvider" type="QuanLyAccount.CustomRoleProvider" />
    8. <!--QuanLyAccount là tên object nếu bạn copy sang object khac nhớ đổi tên nhé-->
    9.       </providers>
    10.     </roleManager>
    11.     <!--/////////////////////////////////////-->
    12.     <compilation debug="true" targetFramework="4.0">
    13.       <assemblies>
    14. ...

    Link dowload code: http://www.mediafire.com/?5fsto16scg7yf0q
    Đã được chỉnh sửa lần cuối bởi ducnv_b01048 : 14-08-2012 lúc 04:27 PM.

  2. #2
    Ngày gia nhập
    12 2011
    Nơi ở
    vùng kín
    Bài viết
    139

    rất hay cảm ơn bạn .

    Visual C# Code:
    1. HttpContext.Current.User.Identity.IsAuthenticated
    cái này thay cho seasion cũng đc phải không bạn ?. Thế bao nhiêu lâu thì nó hết tác dụng(thời gian sống của nó ý).

  3. #3
    Ngày gia nhập
    04 2012
    Nơi ở
    Ha Noi
    Bài viết
    149

    Trích dẫn Nguyên bản được gửi bởi dangbon Xem bài viết
    Visual C# Code:
    1. HttpContext.Current.User.Identity.IsAuthenticated
    cái này thay cho seasion cũng đc phải không bạn ?. Thế bao nhiêu lâu thì nó hết tác dụng(thời gian sống của nó ý).
    không phải đâu bạn ạ.cái đó chỉ là kiểm tra xem đã có quyền hay chưa thôi.vd nó trả về true tức là đã đang nhập (có 1 quyền nào đó)
    false tức chưa
    còn cái này mới là lưu tài khoản
    + FormsAuthentication.SetAuthCookie("ten tai khoan can lay quyền", true nếu muốn lưu vào cookie false thi không lưu);
    nó là setcookie
    bạn tìm hiểu class của nó xem quản lý lưu cookie này bao lâu chứ mình cũng không để ý nó sống bao lâu đâu

    Trích dẫn Nguyên bản được gửi bởi ducnv_b01048 Xem bài viết
    không phải đâu bạn ạ.cái đó chỉ là kiểm tra xem đã có quyền hay chưa thôi.vd nó trả về true tức là đã đang nhập (có 1 quyền nào đó)
    false tức chưa
    còn cái này mới là lưu tài khoản
    + FormsAuthentication.SetAuthCookie("ten tai khoan can lay quyền", true nếu muốn lưu vào cookie false thi không lưu);
    nó là setcookie
    bạn tìm hiểu class của nó xem quản lý lưu cookie này bao lâu chứ mình cũng không để ý nó sống bao lâu đâu
    bạn xem dòng này trong web.config nhe
    Code:
    <forms loginUrl="~/Account/LogOn" timeout="2880" />
    cai timeout hình như thời gian đó bạn.test thử xem nhé mình chưa test được

  4. #4
    Ngày gia nhập
    05 2009
    Bài viết
    18

    Trích dẫn Nguyên bản được gửi bởi ducnv_b01048 Xem bài viết
    Videos demo cho web.

    http://www.youtube.com/watch?v=2bR4R...ature=youtu.be

    Để chạy được web các bạn cần tạo database.(chạy query file: LoginAccount.sql trong object).
    đổi mật khẩu và tên máy cho đúng trong web.config
    XML Code:
    1. <connectionStrings>
    2.     <add name="LoginAccountEntities" connectionString="metadata=res://*/LoginAccount.csdl|res://*/LoginAccount.ssdl|res://*/LoginAccount.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=LoginAccount;Persist Security Info=True;User ID=sa;Password=duc10a2;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
    3.   </connectionStrings>

    - Giới thiệu Về Provider
    + có thể quản lý được các quyền hạn để vào một trang nào đó.
    + có thể quản lý được các tài khoản để vào một trang nào đó
    + cách code đơn giản và hiệu quả.

    - Cách quản lý các hàm(Acction trong controllers)
    + Quản lý Cả controllers.
    Visual C# Code:
    1. ...
    2. [Authorize(Roles = "Admin")]//Chi co Admin Moi Dung Duoc Controller nay
    3.     public class AdminController : Controller
    4.     {
    5. ...
    - trong đó Roles ="Admin" là quyền có thể vào.bạn có thể bổ xung thêm nhiều quyền vd như
    Visual C# Code:
    1. [Authorize(Roles = "Admin,ThanhVien,Mod")]//Chi co Admin hoặc ThanhVien hoặc Mod Mới vào được controllers này
    + Quản lý một Accitons.
    Visual C# Code:
    1. ...
    2. [Authorize(Roles = "Admin,ThanhVien")] //Chi co Admin va ThanhVien Moi Dung duoc acction nay
    3.         [HttpPost] //phuong thuc get
    4.         public ActionResult DoiMatKhau(ChangePasswordModel model)
    5.         {
    6. ...
    + Quản lý Một Acctions hoặc Controllers mà chỉ cần nó đăng nhập là vào được thì làm như sau.
    Visual C# Code:
    1. ...
    2. [Authorize(Roles = "")] //Chi can dang nhap la dung duoc Action nay
    3.         [HttpGet] //phuong thuc get
    4.         public ActionResult PhanQuyen()
    5. ...
    + Ngoài ra ta còn có thể Quản lý bằng tài khoản.vd.
    Visual C# Code:
    1. ...
    2. [Authorize(Users= "Admin")] //Chỉ có tài tài khoản Admin mới vào được hàm này. tài khoản chứ không phải quyền đâu nhé.đừng nhầm :))
    3.         [HttpGet] //phuong thuc get
    4.         public ActionResult PhanQuyen()
    5. ...

    Các thuộc tính lấy quyền hoặc tên tài khoản trong code.

    + HttpContext.Current.User.Identity.IsAuthenticated (true nếu đã có quyền,false chưa có quyền)
    + HttpContext.Current.User.Identity.Name (Lấy tên tai khoản của người dùng)
    + HttpContext.Current.User.IsInRole("Admin") (true nếu đúng là quyền Admin, false nếu không phải quyền Admin).
    + FormsAuthentication.SetAuthCookie("ten tai khoan can lay quyền", true nếu muốn lưu vào cookie false thi không lưu); (Khi gọi hàm này thì nó sẽ tự động gọi hàm GetRolesForUser(string username) trong fie CustomRoleProvider.cs) nó sẽ chuyền giá trị username để lấy quyền.
    ...

    - Nếu những Controllers hoặc Acction nào mà bạn không muốn phân quyền cho nó thì đừng thêm [Authorize(Roles = "Admin,ThanhVien")] cho nó là được.

    để dùng Provider cần chú ý những file sau:(xem trong object nhé)
    1, cần có class : CustomRoleProvider.cs (nếu copy sang object khác nhớ đổi tên namespace nhé)
    + trong file này cần sử lý hàm GetRolesForUser(string username) để lấy quyền.
    Visual C# Code:
    1. public override string[] GetRolesForUser(string username)
    2.         {
    3.             ////-----------------ket noi voi database de lay quyen cua tai khoan-----------------
    4.             LoginAccountEntities db = new LoginAccountEntities(); //tao ket noi voi database
    5.             Account account = db.Accounts.Single(x => x.NameAccount.Equals(username)); //tuong duong voi cau lenh "Select Top 1 From Accounts Where NameAccount = username"
    6.             if (account != null) //neu tim thay tai khoan
    7.             {
    8.                 return new String[] { account.Roles }; //tra ve quyen cua nguoi dung
    9.             }
    10.             else
    11.                 return new String[] { }; //new khong tim thay tai khoan thi gan quyen bang null
    12.         }
    2, cần thêm một đoạn provider trong web.config
    Visual C# Code:
    1. ...
    2. <system.web>
    3.     <!--impost quyen/////////////////////////-->
    4.     <roleManager enabled="true" defaultProvider="MyRoleProvider">
    5.       <providers>
    6.         <clear />
    7.         <add name="MyRoleProvider" type="QuanLyAccount.CustomRoleProvider" />
    8. <!--QuanLyAccount là tên object nếu bạn copy sang object khac nhớ đổi tên nhé-->
    9.       </providers>
    10.     </roleManager>
    11.     <!--/////////////////////////////////////-->
    12.     <compilation debug="true" targetFramework="4.0">
    13.       <assemblies>
    14. ...

    Link dowload code: http://www.mediafire.com/?5fsto16scg7yf0q
    Ban ơi cho mình hỏi tí nha ví dụ như mình có 1 bảng csdl trong đó có 1 bảng nhân viên,1 bảng khách hàng,và bảng phân quyền thì khi đó mình muốn làm phần đăng nhập và sau đó phân quyền thì mình phải làm sao mình làm trên asp.net MVC3. cám ơn bạn rất nhiều

  5. #5
    Ngày gia nhập
    04 2012
    Nơi ở
    Ha Noi
    Bài viết
    149

    Mặc định trả lời

    Trích dẫn Nguyên bản được gửi bởi baothi Xem bài viết
    Ban ơi cho mình hỏi tí nha ví dụ như mình có 1 bảng csdl trong đó có 1 bảng nhân viên,1 bảng khách hàng,và bảng phân quyền thì khi đó mình muốn làm phần đăng nhập và sau đó phân quyền thì mình phải làm sao mình làm trên asp.net MVC3. cám ơn bạn rất nhiều
    bạn viết code sử lý đoạn này!hàm lấy quyền.
    Code:
    public override string[] GetRolesForUser(string username)
            {
                ////-----------------ket noi voi database de lay quyen cua tai khoan-----------------
                LoginAccountEntities db = new LoginAccountEntities(); //tao ket noi voi database
                Account account = db.Accounts.Single(x => x.NameAccount.Equals(username)); //tuong duong voi cau lenh "Select Top 1 From Accounts Where NameAccount = username"
                if (account != null) //neu tim thay tai khoan
                {
                    return new String[] { account.Roles }; //tra ve quyen cua nguoi dung
                }
                else
                    return new String[] { }; //new khong tim thay tai khoan thi gan quyen bang null
            }

  6. #6
    Ngày gia nhập
    03 2012
    Bài viết
    10

    Mặc định Quản Lý Tài Khoản Bằng Provider MVC3

    Bác ơi cho mình hỏi.
    Mình làm theo ví dụ của bác thì chạy ok
    Làm theo hướng dẫn này để customize Principal vs Identity cũng ok
    http://stackoverflow.com/questions/1...-or-iprincipal.

    Nhưng khi làm cả hai một lúc thì thằng RoleProvider nó ko nhận.
    Ko biết có phải làm ji thêm ko :(.
    Đây là code của mình. Mình làm login bằng google:
    source http://www.mediafire.com/?zvyjdylc2danewg
    phần Custom principal
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Web.Mvc;
    6. using System.Web.Routing;
    7. using System.Web.Security;
    8. using System.Web.Script.Serialization;
    9. using CustomAuthen.Models;
    10. using DotNetOpenAuth.OpenId;
    11. using DotNetOpenAuth.OpenId.RelyingParty;
    12. using DotNetOpenAuth.Messaging;
    13. using DotNetOpenAuth.OpenId.Extensions.AttributeExchange;
    14.  
    15. namespace CustomAuthen.Controllers
    16. {
    17.     public class AccountController : BaseController
    18.     {
    19.         // GET: /Account/LogOff
    20.  
    21.         public ActionResult LogOff()
    22.         {
    23.             FormsAuthentication.SignOut();
    24.  
    25.             return RedirectToAction("Index", "Home");
    26.         }
    27.         //
    28.         // GET: /Account/LogOn
    29.  
    30.         public ActionResult LogOn()
    31.         {
    32.             var openid = new OpenIdRelyingParty();
    33.             var response = openid.GetResponse();
    34.  
    35.             if (response != null)
    36.             {
    37.                 switch (response.Status)
    38.                 {
    39.                     case AuthenticationStatus.Authenticated:
    40.                         var fetch = response.GetExtension<FetchResponse>();
    41.                         string email = "none";
    42.                         string name = "none";
    43.                         if (fetch != null)
    44.                         {
    45.                             email = fetch.GetAttributeValue(WellKnownAttributes.Contact.Email);
    46.                             name = "Vũ Chí Dũng";
    47.                         }
    48.  
    49.                         FormsAuthentication.RedirectFromLoginPage(response.ClaimedIdentifier, false);
    50.                         CustomPrincipalSerializeModel serializeModel = new CustomPrincipalSerializeModel();
    51.                         JavaScriptSerializer serializer = new JavaScriptSerializer();
    52.                         serializeModel.FirstName = name;
    53.                         string userData = serializer.Serialize(serializeModel);
    54.  
    55.                         FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
    56.                                                          1,
    57.                                                          email,
    58.                                                          DateTime.Now,
    59.                                                          DateTime.Now.AddMinutes(15),
    60.                                                          false,
    61.                                                          userData);
    62.                         string encTicket = FormsAuthentication.Encrypt(authTicket);
    63.                         FormsAuthentication.SetAuthCookie(email, true);
    64.                         HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
    65.                         Response.Cookies.Add(faCookie);
    66.                         break;
    67.                 }
    68.                 return RedirectToAction("Index", "Home");
    69.             }
    70.             else
    71.             {
    72.                 const string googleEndPoint = "https://www.google.com/accounts/o8/id";
    73.                 var request = openid.CreateRequest(Identifier.Parse(googleEndPoint));
    74.                 var fetch = new FetchRequest();
    75.                 fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
    76.                 fetch.Attributes.AddRequired(WellKnownAttributes.Name.Alias);
    77.                 request.AddExtension(fetch);
    78.                 return request.RedirectingResponse.AsActionResult();
    79.             }
    80.         }
    81.     }
    82. }
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Web.Mvc;
    6.  
    7. namespace CustomAuthen.Controllers
    8. {
    9.     public class HomeController : BaseController
    10.     {
    11.         public ActionResult Index()
    12.         {
    13.             ViewBag.Message = "Welcome to ASP.NET MVC!";
    14.  
    15.             return View();
    16.         }
    17.  
    18.         [Authorize(Roles="admin")]
    19.         public ActionResult About()
    20.         {
    21.             return View();
    22.         }
    23.     }
    24. }
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Web.Mvc;
    6. using CustomAuthen.Custom;
    7.  
    8. namespace CustomAuthen.Controllers
    9. {
    10.     public class BaseController : Controller
    11.     {
    12.         protected virtual new CustomPrincipal User
    13.         {
    14.             get { return HttpContext.User as CustomPrincipal; }
    15.         }
    16.  
    17.     }
    18. }

    Đây là phần Customize Principal
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Security.Principal;
    6.  
    7. namespace CustomAuthen.Custom
    8. {
    9.     public class CustomPrincipal : ICustomPrincipal
    10.     {
    11.         public IIdentity Identity { get; private set; }
    12.         public bool IsInRole(string role) { return false; }
    13.  
    14.         public CustomPrincipal(string email)
    15.         {
    16.             this.Identity = new GenericIdentity(email);
    17.         }
    18.         public string FirstName { get; set; }
    19.     }
    20. }
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Security.Principal;
    6.  
    7. namespace CustomAuthen.Custom
    8. {
    9.     public interface ICustomPrincipal : IPrincipal
    10.     {
    11.         string FirstName { get; set; }
    12.     }
    13. }
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5.  
    6. namespace CustomAuthen.Models
    7. {
    8.     public class CustomPrincipalSerializeModel
    9.     {
    10.         public string FirstName { get; set; }
    11.     }
    12. }

    Trong file Global.asax
    Visual C# Code:
    1.         protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
    2.         {
    3.             HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
    4.  
    5.             if (authCookie != null)
    6.             {
    7.                 FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
    8.  
    9.                 JavaScriptSerializer serializer = new JavaScriptSerializer();
    10.  
    11.                 CustomPrincipalSerializeModel serializeModel = serializer.Deserialize<CustomPrincipalSerializeModel>(authTicket.UserData);
    12.  
    13.                 CustomPrincipal newUser = new CustomPrincipal(authTicket.Name);
    14.                 if (serializeModel != null)
    15.                 {
    16.                     newUser.FirstName = serializeModel.FirstName;
    17.                 }
    18.  
    19.                 HttpContext.Current.User = newUser;
    20.             }
    21.         }
    Phần view
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Web.Mvc;
    6. using CustomAuthen.Custom;
    7.  
    8. namespace CustomAuthen.Views
    9. {
    10.     public abstract class BaseViewPage : WebViewPage
    11.     {
    12.         public virtual new CustomPrincipal User
    13.         {
    14.             get { return base.User as CustomPrincipal; }
    15.         }
    16.     }
    17.  
    18.     public abstract class BaseViewPage<TModel> : WebViewPage<TModel>
    19.     {
    20.         public virtual new CustomPrincipal User
    21.         {
    22.             get { return base.User as CustomPrincipal; }
    23.         }
    24.     }
    25. }

    config trong view/Web.config
    XML Code:
    1.   <system.web.webPages.razor>
    2.     <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    3.     <pages pageBaseType="CustomAuthen.Views.BaseViewPage">
    4.       <namespaces>
    5.         <add namespace="System.Web.Mvc" />
    6.         <add namespace="System.Web.Mvc.Ajax" />
    7.         <add namespace="System.Web.Mvc.Html" />
    8.         <add namespace="System.Web.Routing" />
    9.       </namespaces>
    10.     </pages>
    11.   </system.web.webPages.razor>

    Phần tiếp theo là code RoleProvinder
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Web;
    5. using System.Web.Security;
    6.  
    7. namespace CustomAuthen
    8. {
    9.     public class CustomRoleProvider : RoleProvider
    10.     {
    11.         public override void AddUsersToRoles(string[] usernames, string[] roleNames)
    12.         {
    13.             throw new NotImplementedException();
    14.         }
    15.  
    16.         public override string ApplicationName
    17.         {
    18.             get
    19.             {
    20.                 throw new NotImplementedException();
    21.             }
    22.             set
    23.             {
    24.                 throw new NotImplementedException();
    25.             }
    26.         }
    27.  
    28.         public override void CreateRole(string roleName)
    29.         {
    30.             throw new NotImplementedException();
    31.         }
    32.  
    33.         public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
    34.         {
    35.             throw new NotImplementedException();
    36.         }
    37.  
    38.         public override string[] FindUsersInRole(string roleName, string usernameToMatch)
    39.         {
    40.             throw new NotImplementedException();
    41.         }
    42.  
    43.         public override string[] GetAllRoles()
    44.         {
    45.             throw new NotImplementedException();
    46.         }
    47.  
    48.         public override string[] GetRolesForUser(string username)
    49.         {
    50.             //if (username.Equals("dungvc01004@fpt.edu.vn"))
    51.                 return new string[] { "admin" };
    52.             //else
    53.               //  return new string[] { };
    54.         }
    55.  
    56.         public override string[] GetUsersInRole(string roleName)
    57.         {
    58.             throw new NotImplementedException();
    59.         }
    60.  
    61.         public override bool IsUserInRole(string username, string roleName)
    62.         {
    63.             throw new NotImplementedException();
    64.         }
    65.  
    66.         public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames)
    67.         {
    68.             throw new NotImplementedException();
    69.         }
    70.  
    71.         public override bool RoleExists(string roleName)
    72.         {
    73.             throw new NotImplementedException();
    74.         }
    75.     }
    76. }

    Web.Config
    XML Code:
    1.  
    2.     </compilation>
    3.       <roleManager enabled="true" defaultProvider="CustomRoleProvider">
    4.           <providers>
    5.               <clear/>
    6.               <add name="CustomRoleProvider"
    7.                   type="CustomAuthen.CustomRoleProvider"/>
    8.           </providers>
    9.       </roleManager>
    10.     <authentication mode="Forms">
    11.       <forms loginUrl="~/Home/Index" timeout="2880" />
    12.     </authentication>
    Đã được chỉnh sửa lần cuối bởi xiucoi : 19-01-2013 lúc 03:53 AM.

  7. #7
    Ngày gia nhập
    04 2012
    Nơi ở
    Ha Noi
    Bài viết
    149

    mình cũng có làm cái này với google rồi vẫn ok mà.bac tham khảo code của mình nhé.bận quá nên không xem được.mà nếu có điều kiện bác nên chuyển lên làm mvc4 cũng .net 4.0 mà.dùng mvc4 thì mấy thằng api google hay facebook làm dễ hơn.cái phân quyền này mình làm chạy ngon trên mvc3 và mvc4
    link: https://skydrive.live.com/redir?resi...BtwVUjz0bZ8pic

    mục openid_mvc nhá.

  8. #8
    Ngày gia nhập
    03 2012
    Bài viết
    10

    Mình có thêm phần custom Principal thì ko nhận đc thằng rule provider chứ ko liên quan đến thằng google login bác ạ

  9. #9
    Ngày gia nhập
    04 2012
    Nơi ở
    Ha Noi
    Bài viết
    149

    ừ.thế đã chạy được chưa?nên dùng một thằng thôi bác.chứ import lắm thằng vào rồi nó xung đột lẫn nhau đây^^.

  10. #10
    Ngày gia nhập
    12 2011
    Nơi ở
    vùng kín
    Bài viết
    139

    cho mình hỏi dùng thằng này với sql membership provider thì nên dùng cái nào hơn.?

Các đề tài tương tự

  1. Cách load lại web sau khoảng thời gian đã định trong ASP.NET mvc3?
    Gửi bởi dielove trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 4
    Bài viết cuối: 03-12-2012, 10:56 AM
  2. Thêm, xóa csdl MVC3 và giới thiệu các hoạt động của mô hình mvc3,(videos)
    Gửi bởi ducnv_b01048 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 7
    Bài viết cuối: 10-10-2012, 04:12 PM
  3. Quản lý thành viên trong asp.net MVC3
    Gửi bởi duong trung duc trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 02-07-2012, 09:11 PM
  4. Kiểm tra input bằng models (Post,Get) MVC3 - Required,RegularExpression MVC3
    Gửi bởi ducnv_b01048 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 09-05-2012, 02:39 PM
  5. Cách đăng nhập bằng tài khoản Facebook trong web MVC3?
    Gửi bởi nvtlucky trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 10-03-2011, 10:12 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn