사용자 지정 멤버십 공급자
사용자 지정 멤버십 공급자를 만들려면, MembershipProvider 추상 클래스를 상속하고 ValidateUser 메서드를 재정의하여 의도한 데이터 소스에 대해 사용자 자격 증명을 확인합니다. 다음 예를 고려하십시오.
public class MyMembershipProvider : MembershipProvider { public override bool ValidateUser(string username, string password) { // Validate user credentials against your database here. var oUserProvider = new MyUserProvider(); return oUserProvider.ValidateUser(username,password,CurrentTerritoryID); } }
참조를 추가하고 web.config에서 구성하여 공급자를 ASP.NET MVC 2에 통합합니다.
<membership defaultprovider="MyMembershipProvider"> <providers> <clear></clear> <add name="MyMembershipProvider" applicationname="MyApp" description="My Membership Provider" passwordformat="Clear" connectionstringname="MyMembershipConnection" type="MyApp.MyMembershipProvider"></add> </providers> </membership>
사용자 지정 역할 공급자
역할 기반 인증의 경우 RoleProvider 추상 클래스를 상속하고 GetRolesForUser 메서드.
public override string[] GetRolesForUser(string username) { // Fetch user roles from the database here. SpHelper db = new SpHelper(); DataTable roleNames = null; try { roleNames = db.ExecuteDataset(ConnectionManager.ConStr, "sp_GetUserRoles", new MySqlParameter("_userName", username)).Tables[0]; } catch (Exception ex) { throw ex; } string[] roles = new string[roleNames.Rows.Count]; int counter = 0; foreach (DataRow row in roleNames.Rows) { roles[counter] = row["Role_Name"].ToString(); counter++; } return roles; }
web.config에서 역할 공급자를 구성합니다.
<system.web> ... <rolemanager enabled="true" defaultprovider="MyRoleProvider"> <providers> <clear></clear> <add name="MyRoleProvider" applicationname="MyApp" type="MyApp.MyRoleProvider" connectionstringname="MyMembershipConnection"></add> </providers> </rolemanager> ... </system.web>
권한 부여
[Authorize(Roles= "xxx,yyy")] 속성을 사용하여 특정 컨트롤러 및 작업을 보호합니다. 역할.
사용자 정의 인증 속성(선택 사항)
승인되지 않은 사용자를 AccessDenied 페이지로 리디렉션하려면 사용자 정의 [MyAuthorization] 속성을 생성하십시오.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)] public class MyAuthorizationAttribute : AuthorizeAttribute { // ... Implementation }
다음과 같이 속성을 사용하세요.
[MyAuthorization(Roles = "Portal Manager,Content Editor", ViewName = "AccessDenied")] public class DropboxController : Controller { ....... }
위 내용은 ASP.NET MVC 2에서 사용자 지정 멤버십 및 역할 공급자를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!