사이드 노트 : vs2013 express를 사용하고 있으며 다른 것은 설치하지 않았습니다.Membership.GetAllUsers()를 사용할 때 사용자를 추가하고 역할에 할당했습니다. 아무 것도 반환하지 않습니다.
나는 다음과 같은 인증/권한 부여 목표와 함께 인트라넷 사이트 건물입니다 : 역할 클래스
- 사용자 정의 역할을, 당신은 윈도우에 로그인 한 경우 , 그러면 앱을 볼 수 있습니다.
- [Authorize (Roles = "Admin")] 종류의 속성을 사용할 수 있습니다.
- UserManagement 페이지에서 Users (Create/Delete/List/Edit)를 사용하십시오.
가 나는를 추가했습니다 : 이것은 내가 지금까지 무엇을 가지고 http://weblogs.asp.net/scottgu/archive/2006/07/23/Recipe_3A00_-Implementing-Role-Based-Security-with-ASP.NET-using-Windows-Authentication-and-SQL-Server.aspx
하지만 난 사용자 ...에서/목록을 작성하는 방법을 잘 모르겠어요 :
<authentication mode="Windows"></authentication>
<authorization>
<deny users="?" />
</authorization>
<roleManager enabled="true" defaultProvider="SqlRoleManager">
<providers>
<clear/>
<add name="SqlRoleManager"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="EFDbContext"
applicationName="TEST" />
</providers>
</roleManager>
<membership defaultProvider="SqlProvider"
userIsOnlineTimeWindow="15">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="EFDbContext"
applicationName="TEST"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10" />
</providers>
</membership>
: 내가 Membership.GetAllUsers()를 사용할 때 사용자 및 역할에 그를 할당이 없음
의 Web.config 비트를 반환
if(!Roles.RoleExists("Admin"))
{
Roles.CreateRole("Admin");
Roles.AddUserToRole(@"JIMMYT1988\jimmyt1988", "Admin");
}
사용자와 내가 관리자에 대한 액세스를 차단하면 내가하지 않고 사용자를 만든 경우 반면 역할은 .. 내가 허용이기 때문에 노력하고 있습니다 :
나는이 같은 Global.asax에 내 첫 번째 사용자를 추가 그 역할을 추가하면, 그는 접근이 허용되지 않았습니다 ... 그래서 그것은 모두 잘되고 일합니다.
이
날 관리자의 역할에 대한 액세스를 차단 : 제대로 작동[Authorize(Roles = "Admin")]
public class UserController : Controller
{
private IUserRepository repository;
public UserController(IUserRepository repo)
{
repository = repo;
}
public PartialViewResult List()
{
IEnumerable<User> users = repository.Users;
UserListViewModel viewModel = new UserListViewModel();
viewModel.Users = users;
viewModel.TotalUsers = Membership.GetNumberOfUsersOnline().ToString();
return PartialView(viewModel);
}
}
그래서 나는 사용자와 관리자의 역할을 가정하고 있는데이 데이터베이스에 entires을 볼 수 있습니다 ... 위의 컨트롤러 특히 membershipprovider 사용자에 대한 추상 -> 구체적인 매핑의 일부입니다 ...하지만 GetAllUsers 줄에서 디버깅하고 실제로 빈 목록을 반환합니다, 그것은 잘못된 매핑이 아니에요.
마지막으로 나는이 전화 : 더 사용자를 반환하지 MembershipUserCollection users = Membership.GetAllUsers();
합니다.
아이디어가 있으십니까?
MembershipUser newUser = Membership.CreateUser(@"JIMMYT1988\jimmyt1988", "password");
을 그리고 당신은 역할에 해당 사용자를 추가 할 수 있습니다
왜이 질문이 아래로 투표를해야합니까? 더 많은 정보를 추가 할 수 있습니까? 나는 C# 등에서 꽤 새로운 사람이다. – Jimmyt1988
사용자 "JIMMYT1988 \ jimmyt1988"이 존재 하는가? – alexmac
나는 OP가 실제로 존재한다는 가정을 한 이유를 더 자세히 설명했다. – Jimmyt1988