2009-04-03 1 views
0

C#에서 폼 인증을 사용하고 Active Directory가 멤버 자격 공급자 (기존 uid/pwd를 사용하여 로그인 한 사용자)입니다. 그러나 역할을 aspnet_Roles (응용 프로그램에서 만든 기본 테이블)에서 제공하고 싶습니다. 내 Web.config 있음 :이 노드에 대한 기본 설정으로.NerdDinner와 같은 확인란에서 DB에서 사용할 수있는 역할 목록을 국가별로 표시합니다.

NerdDinner 샘플 응용 프로그램 PDF를 성공적으로 따라 갔고 내가 배운 것을 사용하고 싶습니다. 내 응용 프로그램에서는 NerdDinner와 같은 저장소 패턴을 사용하고 있습니다. NerdDinner에서는 Helper 메서드를 사용하여 DropDownList를 채우는 방법을 보여줍니다. 나는 같은 것을하고 싶다. 그러나 국가와 DropDown 대신에 테이블에서 역할을 가져 와서 체크 박스를 채우고 싶다. 내 UsersController.cs에서

내가 가진 :

내보기에서
// 
// ViewModel Classes 
public class UserFormViewModel 
{ 
    // properties 
    public User User { get; private set; } 
    public SelectList Roles { get; private set; } 

    // Constructor 
    public UserFormViewModel(User user) 
    { 
     User = user; 
     Roles = new SelectList(Roles.All,); //this is where I have problems 
    } 
} 

내가 가지고있는 (물론 작동하지 않을 것이다) :

<ul> 
    <% foreach (var role in Roles as IEnumerable<SelectListItem>)) { %> 
    <li><%= Html.CheckBox(role.ToString())%> <%= role.ToString() %></li> 
    <% } %> 
</ul> 

P.S.을 나는 .NET에 초보자이지만, 나는 그것을 좋아한다! 내가 틀렸다면 나를 정정하십시오. 그러나이 문제는 콜렉션과 타입 정의와 관련이 있다고 생각합니까?

또한 저는 ASP.NET 구성 도구를 사용하여 역할과 사용자를 추가하는 것에 익숙하지만 사용자 지정 사용자 관리 섹션을 만들고 싶습니다.

답변

0

이와 비슷한?

<li><%= Html.CheckBox(role.ToString(), 
    Roles.IsUserInRole(Model.User.Identity.LoginName, role.ToString())) %> 
    <%= role.ToString() %> 
</li> 

캐시는 asp.net 멤버십 공급자의 역할에 대한 정확한 구문을 기억하지만 그 라인에있는 내용입니다.

+0

이봐 모프 내가 믿는이 될 것이다 : <% = Html.CheckBox (role.ToString(), Roles.IsUserInRole (Model.User.UserName, role.ToString())) %> 어떻게 루프를 시작할 것인가? 나는 시도하고있다 : <% foreach (varn role in IEnumerable ) {%>,하지만 작동하지 않는다. – robnardo

0

UserFormViewModel 클래스를 사용할 필요가없는 것 같습니다. Morph는 나를 도왔다. 이것은 내가 뭐하는 거지입니다 :

<ul>    
    <% 
     string[] allroles = Roles.GetAllRoles(); 
     foreach (string role in allroles) { 
    %> 
    <li> 
     <%= Html.CheckBox(role.ToString(), Roles.IsUserInRole(Model.UserName, role.ToString())) %> 
     <%= role.ToString() %> 
    </li>     
    <% } %> 

</ul> 
+0

foreach (Roles.GetAllRoles()의 문자열 역할) {} – robnardo

+0

아, 루프를 수행하는 방법. 네, 간단한 문자열 변수에서 역할 :). – Morph

관련 문제